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的增删改查,喜欢就点个赞呗!!