美文网首页数据缓存
FMDB的基本使用

FMDB的基本使用

作者: lyonLiu | 来源:发表于2016-09-18 16:03 被阅读66次

FMDB框架下载<= 点击左边下载FMDB框架.....(要使用一个框架之前肯定免不了先下载框架啦)

下载完毕后只需要将以下文件导入项目中

FMDB框架配置

1.导入libsqlite3.0.tbd

好了,废话不多说。直接上代码


创建一个FMDB工具类

#import <Foundation/Foundation.h>

@interface SQLiteTool : NSObject
// 单粒
+ (instancetype)shareInstance;

// 创建表
- (void)createTable;
// 插入数据
- (void)insertRecord;
// 执行多条语句
- (void)executeStaments;
// 查询所有数据
- (void)queryAll;
// 事件方法:将多条语句一起插入数据库,只要有一条不成功便全部插入不成功
- (void)transaction;

@end
#import "SQLiteTool.h"

@interface SQLiteTool ()

@property (nonatomic ,strong)FMDatabase *db;
@property (nonatomic ,strong)FMDatabaseQueue *dbQueue;

@end

@implementation SQLiteTool

static id shareInstance;

+ (instancetype)allocWithZone:(struct _NSZone *)zone
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        shareInstance = [super allocWithZone:zone];
    });
    return shareInstance;
}

+ (instancetype)shareInstance{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        shareInstance = [[self alloc]init];
    });
    return shareInstance;
}

- (id)copyWithZone:(NSZone *)zone
{
    return shareInstance;
}

- (instancetype) init {
    if (self = [super init]) {
        
        // 创建一个数据库
        //_db = [FMDatabase databaseWithPath:@"/Users/zhongwangheyi/Desktop/db/demo.sqlite"];
        
        _dbQueue = [FMDatabaseQueue databaseQueueWithPath:@"/Users/zhongwangheyi/Desktop/db/demo.sqlite"];
        
        // 打开数据库
        if (_db.open) {
            NSLog(@"数据库打开成功");
        }else{
            NSLog(@"数据库打开失败");
        }
    }
    return self;
}

- (void)createTable
{
    NSString *sql = @"create table t_stu(id integer primary key autoincrement,name text not null,age integer,score real default 60)";
    
    BOOL result = [_db executeUpdate:sql values:nil error:nil];
    
    if (result) {
        NSLog(@"创建成功");
    }else{
        NSLog(@"创建失败");
    }
}

- (void)executeStaments
{
    NSString *sql = @"insert into t_stu(name,age,score) values('zhangsan2',162,882);
                      insert into t_stu(name,age,score) values('zhangsan1',161,881);";
    
    BOOL result = [_db executeStatements:sql];
    
    if (result) {
        NSLog(@"多条语句执行成功");
    }else{
        NSLog(@"执行失败");
    }
}

- (void)insertRecord
{
    NSString *sql = @"insert into t_stu(name,age,score) values('zhangsan',5,8)";
    // 
    [_dbQueue inDatabase:^(FMDatabase *db) {

        BOOL result = [db executeUpdate:sql values:nil error:nil];
        if (result) {
            NSLog(@"数据插入成功");
        }else{
            NSLog(@"数据插入失败");
        }
    }];
}

- (void)queryAll
{
    NSString *sql = @"select * from t_stu";
    
    FMResultSet *resultSet = [_db executeQuery:sql values :nil error:nil];
    
    while ([resultSet next]) {
        NSString *name = [resultSet stringForColumn:@"name"];
        NSInteger age = [resultSet intForColumn:@"age"];
        double score = [resultSet doubleForColumn:@"score"];
        NSLog(@"name = %@,age = %zd,score = %lf",name,age,score);
    }
}
- (void)transaction
{
    NSString *sql = @"insert into t_stu(name,age,score) values('lyon',0000,0000)";
    NSString *sql2 = @"insert into t_stu2(name,age,score) values('ios',51112,81112)";
    
    [_dbQueue inTransaction:^(FMDatabase *db, BOOL *rollback) {
        
        BOOL result = [db executeUpdate:sql withArgumentsInArray:nil];
        BOOL result2 = [db  executeUpdate:sql2 withArgumentsInArray:nil];
        
        if (result && result2) {
            // 如果是,数据插入成功
        }else{
            // 如果不是,设置*rollback = YES,回滚至原始状态
            *rollback = YES;
        }
    }];
}

@end

相关文章

  • FMDB

    一、FMDB基本使用

  • SYCacheManager缓存数据操作

    SYCacheManager使用FMDB、LKDB进行二次封装,缓存数据。 FMDB的基本使用使用FMDataba...

  • Swift中使用FMDB IOS

    18-(掌握)FMDB基本使用 什么是FMDB?FMDB是iOS平台的SQLite数据库框架FMDB以OC的方式封...

  • FMDB基本使用

    熟悉基本语法别看这篇文章了我这里就是单纯记录下使用,备忘 1、导入包 2、github或者pod框架:FMDB 3...

  • FMDB的基本使用

    类 FMDB中有三个常用的类: FMDatabase 表示一个SQLite数据库,用来执行SQL语句。 FMRes...

  • FMDB的基本使用

    FMDB框架下载<= 点击左边下载FMDB框架.....(要使用一个框架之前肯定免不了先下载框架啦) FMDB框架...

  • FMDB的基本使用

    首先数据库是系统资源,就像我们操作文件一样,所以并发操作时要注意安全。在iOS上,只有一个线程能够打开数据库操作,...

  • FMDB的基本使用

    FMDB是iOS平台的SQLite数据库框架,以OC的方式封装了SQLite的C语言API,使用起来更加面向对象,...

  • FMDB

    # FMDB基本使用 FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言...

  • iOS数据库FMDB的简单使用

    一、FMDB基本使用 1、什么是FMDB? FMDB是一款简洁、易用的封装库。因此,在这里推荐使用第三方框架FMD...

网友评论

    本文标题:FMDB的基本使用

    本文链接:https://www.haomeiwen.com/subject/fivusttx.html