数据库类库FMDB

  下载地址:https://github.com/tryingx/fmdb-master

前言

  SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库。iOS SDK很早就支持了SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。但是,原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,开源社区中就出现了一系列将SQLite API进行封装的库,而FMDB (https://github.com/tryingx/fmdb-master) 则是开源社区中的优秀者。

第一步 引入:sqlite3的类库 

第二步 引入:FMDB的类库

主要包括以下几方面

  引入文件结束以后就可以使用了,使用很简单

第一步 建立一个数据库类

 1 NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; // 获取document文件的路径  
 2 /** 
 3  *  强调一点就是对于数据库的名:我们可以用"" 或用 NULL  
 4  * 
 5  *  An empty string (@""). An empty database is created at a temporary location. This database is deleted with the FMDatabase connection is closed. 
 6  也就是说如果我们使用(@""),会创建一个临时数据库,当我们数据库关闭后会自动删除 
 7  NULL. An in-memory database is created. This database will be destroyed with the FMDatabase connection is closed. 
 8  在内存中给你创建一个数据库 
 9  */  
10 NSString *dbPath = [docPath stringByAppendingPathComponent:@"student.sqlite"];  
11 NSLog(@"%@", dbPath); // 拼接字符串  
12 FMDatabase *dataBase = [FMDatabase databaseWithPath:dbPath];  
13 [dataBase open];  
14 // 用来判断数据库打开是否成功  
15 if (![dataBase open]) {  
16     NSLog(@"error");  
17 }

第二步 就是执行一些常用的操作

常用操作:

1.创建一个表

NSString *sql = @"CREATE TABLE student(_id Integer primary key, name text, password text, email text)";  
BOOL isCreateTable = [dataBase executeStatements:sql];  
NSLog(@"%d", isCreateTable ); 

2.插入数据

NSString *sqlInsert = @"INSERT INTO student (name, password, email) values ('宝贝', '1232', '3343243')";  
BOOL isInsertOK = [dataBase executeStatements:sqlInsert];  
NSLog(@"%d", isInsertOK );

 

3.批量的创建表和插入数据

NSString *sql1 = @"create table bulktest1 (id integer primary key autoincrement, x text);"  
"create table bulktest2 (id integer primary key autoincrement, y text);"  
"create table bulktest3 (id integer primary key autoincrement, z text);"  
"insert into bulktest1 (x) values ('XXX');"  
"insert into bulktest2 (y) values ('YYY');"  
"insert into bulktest3 (z) values ('ZZZ');";  
[dataBase executeStatements:sql1];

  当然也可以通过数组的方式插入数据

NSArray *stuentInfo = [NSArray arrayWithObjects:@"大傻瓜",@"213",@"123456@qq.com", nil nil];  
[dataBase executeUpdate:
@"insert into student (name, password, email) values (?,?,?)" withArgumentsInArray:stuentInfo];

4.匹配的方式插入数据

NSString *sqlInsert = @"INSERT INTO student (name, password, email) values (?,?,?)";  
BOOL flag = [dataBase executeUpdate:sqlInsert, @"大宝贝", @"123", @"654321@qq.com"];  
NSLog(@"%d", flag);

5.1.查询所有数据

FMResultSet *result = [dataBase executeQuery:@"SELECT * FROM student"];  
[self showInfo:result];  
[result close];  

 

- (void)showInfo:(FMResultSet *)result  
{  
    while ([result next]) {  
        int _id = [result intForColumnIndex:0];  
        NSLog(@"id : %d", _id);  
        NSString *name = [result stringForColumnIndex:1];  
        NSLog(@"name : %@", name);  
        NSString *password = [result stringForColumnIndex:2];  
        NSLog(@"password : %@", password);  
        NSString *email = [result stringForColumnIndex:3];  
        NSLog(@"email : %@", email);  
    }  
} 

5.2.查询指定信息

NSString *sqlInsert = @"SELECT * from  student where name = %@";  
FMResultSet *result = [dataBase executeQueryWithFormat:sqlInsert, @"宝贝"];  
NSLog(@"%@", result);  
[self showInfo:result];  

6.执行删除操作

NSString *sql = @"delete from student where name = ?";  
[dataBase executeUpdate:sql,@"宝贝"];

  执行更新操作的步骤和删除操作一样,只不过sql语句不同而已

   重要注意事项是:1 使用完数据库后记得关闭

                             2 查询结果完场后result也得记得关闭

  以上就是FDBM的一些常用操作,具体用法访问https://github.com/tryingx/fmdb 

转载于:https://www.cnblogs.com/tryingx/articles/3721033.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值