美文网首页
FMDB 用法

FMDB 用法

作者: 魂一飞 | 来源:发表于2017-07-01 17:43 被阅读0次

    一 . 使用

    在FMDB中三个重要的类

    1.FMDatabase: 是一个提供SQLite 数据库的类,用于执行SQL语句

    2.FMResultSet: 用在FMDatabase中执行查询的结果的类

    3. FMDatabaseQueue :在多线程下查询和更新数据库用到的类

    二. 数据库初始化(包括打开数据库和创建表)

    三. 数据库操作

    1.增: 方法: -executeUpdate....

    2.删 :方法: -executeUpdate....

    3.改    方法: -executeUpdate....

    4 查     方法:  -executeQuery...(相比前三个不同)

    执行查询操作后,如果成功后会返回一个 FMResultSet对象,反之会返回nil。然后可以用 while()  循环查看记录,例如:

    FMResultSet提供了很多方便的方法来查询数据

    intForColumn:           longForColumn:                   longLongIntForColumn:     

    boolForColumn:         doubleForColumn:              stringForColumn:

    dateForColumn:            dataForColumn:               dataNoCopyForColumn:

    UTF8StringForColumn:           objectForColumn:

    四. 线程安全

    在多个线程中同时使用一个FMDatabase实例是不明智的。不要让多个线程分享同一个FMDatabase实例,它无法在多个线程中同时使用。 如果在多个线程中同时使用一个FMDatabase实例,会造成数据混乱等问题。所以,请使用 FMDatabaseQueue,它是线程安全的。以下是使用方法:

    1.创建  

    NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObject;

    NSString *filePath = [path stringByAppendingPathComponent:@"FMDB.db"];

    FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:path];

    2.操作数据

    [queue inDatabase:^(FMDatabase*db) {

    //FMDatabase数据库操作

    if (![db open]) {

    NSLog(@"打开数据库失败");

    return ;

    }

    //创建表(FMDB中只有update和query操作,除了查询其他都是update操作)}];

    [db executeUpdate:@"create table if not exists user(name text,gender text,age integer) "];

    //插入数据

    BOOL inser = [db executeUpdate:@"insert into user values(?,?,?)",_nameTextField.text,_sexTextField.text,_ageTextField.text];

    [db close];

    }

    4.事物

    假如你要对数据库中的Stutent表插入新数据,那么该事务的具体过程是:开始新事物->插入数据->提交事务,那么当我们要往该表内插入500条数据,如果按常规操作处理就要执行500次“开始新事物->插入数据->提交事务”的过程。

    ,举个例子:假如北京的一家A工厂接了上海一家B公司的500件产品的订单,思考一下:A工厂是生产完一件立即就送到B公司还是将500件产品全部生产完成后再送往B公司?答案肯定是后者,因为前者浪费了大量的时间、人力物力花费在往返于北京和上海之间。同样这个道理也能用在我们的数据库操作上,

    SQLite进行事务的SQL语句:

    只要在执行SQL语句前加上以下的SQL语句,就可以使用事务功能了:

    开启事务的SQL语句,"begin transaction;"

    进行提交的SQL语句,"commit transaction;"

    进行回滚的SQL语句,"rollback transaction;"

    //FMDatabase事务

    //FMDatabaseQueue事务

    原文链接:http://www.jianshu.com/p/71ed016cb1fe

    相关文章

      网友评论

          本文标题:FMDB 用法

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