iOS FMDB增删改查

FMDB是一款简洁、易用的封装库,下面简单介绍下FMDB的使用:

在FMDB下载文件后,导入工程中,并使用 libsqlite3.dylib 依赖包。
FMDB常用类:

FMDatabase : 一个单一的SQLite数据库,用于执行SQL语句。
FMResultSet :执行查询一个FMDatabase结果集。 
FMDatabaseQueue :在多个线程来执行查询和更新时会使用这个类。

创建数据库:

db = [FMDatabase databaseWithPath:database_path];

1、当数据库文件不存在时,fmdb会自己创建一个。
2、 如果你传入的参数是空串:@"" ,则fmdb会在临时文件目录下创建这个数据库,数据库断开连接时,数据库文件被删除。
3、如果你传入的参数是 NULL,则它会建立一个在内存中的数据库,数据库断开连接时,数据库文件被删除。

打开数据库:

[db open]

返回BOOL型

关闭数据库:

[db close]

下面就是一个简单的栗子,代码如下:

首先导入头文件

#import "FMDatabase.h"
//定义静态变量LoadData对象
static LoadData *ld;
//分享单例对象
+ (instancetype)shareLoadData
{
    if (!ld) {
        ld = [[LoadData alloc]init];
    }
    return ld;
}

创建数据库

    //获取文稿路径
    NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    //拼接数据库路径
    NSString *path = [[arr lastObject] stringByAppendingPathComponent:@"fmdb.db"];
    //创建数据库
    db = [FMDatabase databaseWithPath:path];
    NSLog(@"创建数据库成功!");

创建表

if ([db open]) {
        //创建sql语句
        NSString *sql = @"create table if not exists book(id integer primary key autoincrement,name text,publish text,price real)";
        //创建表
        if ([db executeUpdate:sql]) {
            NSLog(@"创建表成功!");
        }else{
            NSLog(@"创建表失败!");
        }
    }else{
        NSLog(@"打开数据库失败!");
    }
    //关闭数据库
    [db close];

添加数据

if ([db open]) {
        //创建sql语句
        NSString *sql = [NSString stringWithFormat:@"insert into book(name,publish,price) values('%@','%@','%f')",bk.name,bk.publish,bk.price];
        //添加数据
        if ([db executeUpdate:sql]) {
            NSLog(@"添加成功!");
        }else{
            NSLog(@"添加失败!");
        }
    }else{
        NSLog(@"打开数据库失败!");
    }
    //关闭数据库
    [db close];

删除数据

if ([db open]) {
        //创建sql语句
        NSString *sql = [NSString stringWithFormat:@"delete from book where id = '%d'",bk.idNum];
        //删除
        if ([db executeUpdate:sql]) {
            NSLog(@"删除成功!");
        }else{
            NSLog(@"删除失败!");
        }
    }else{
        NSLog(@"打开数据库失败!");
    }
    //关闭数据库
    [db close];

查询数据

//创建数组
    NSMutableArray *mArr = [NSMutableArray array];
    if ([db open]) {
        //创建sql语句
        NSString *sql = @"select * from book";
        //执行查询
        FMResultSet *set = [db executeQuery:sql];
        while ([set next]) {
            //创建对象
            Book *bk = [[Book alloc]init];
            bk.idNum = [set intForColumn:@"id"];
            bk.name = [set stringForColumn:@"name"];
            bk.publish = [set stringForColumn:@"publish"];
            bk.price = [set doubleForColumn:@"price"];
            //加入数组
            [mArr addObject:bk];
        }
    }else{
        NSLog(@"打开数据库失败!");
    }
    //关闭数据库
    [db close];
    return mArr;

修改数据

if ([db open]) {
        //创建sql语句
        NSString *sql = [NSString stringWithFormat:@"UPDATE book set name = '%@', publish = '%@', price = '%f' where id = '%d'",bk.name,bk.publish,bk.price,bk.idNum];
        //修改图书
        if ([db executeUpdate:sql]) {
            NSLog(@"修改图书成功!");
        }else{
            NSLog(@"修改图书失败!");
        }
    }else{
        NSLog(@"打开数据库失败!");
    }
    //关闭数据库
    [db close];

以上就是FMDB的增删改查,喜欢就点个赞呗!!

你可能感兴趣的:(iOS FMDB增删改查)