FMDB基本用法

基本介绍

SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库。原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,开源社区中就出现了一系列将SQLite API进行封装的库,而FMDB (https://github.com/ccgus/fmdb) 则是开源社区中的优秀者。手动导入FMDB需添加静态依赖libsqlite3.tbd。

1.设置保持路径,创建FMDB对象

NSString * path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString * pathStr = [path stringByAppendingString:@"/test1.sqlite"];
_db = [FMDatabase databaseWithPath:pathStr];
if (![_db open]) {
    NSLog(@"打开失败");
    return;
}
NSLog(@"打开成功");

2.创建表单

NSString *  sqlStr = @"CREATE TABLE IF NOT EXISTS searchRecord(id integer PRIMARY KEY AUTOINCREMENT,name text NOT NULL,age integer DEFAULT 20,sex text DEFAULT '女');";
if ([_db executeStatements:sqlStr]) {
    NSLog(@"创建表成功");
}else{
    NSLog(@"创建表失败");
}

3.插入数据

NSString * sqlStr = @"INSERT INTO searchRecord(name,sex,age) VALUES('小红','女',18);";
if ([_db executeUpdate:sqlStr]) {
    NSLog(@"插入成功");
}else{
    NSLog(@"插入失败");
}

4. 查询数据

NSString * sqlStr = @"SELECT * FROM searchRecord;";
NSArray * array = @[];
FMResultSet *s =[_db executeQuery:sqlStr withArgumentsInArray:array];
while ([s next]) {
    NSString * name = [s objectForColumnName:@"name"];
    NSInteger age = [s intForColumn:@"age"];
    NSString * sex = [s objectForColumnName:@"sex"];
    NSLog(@"%@", name );
    NSLog(@"%ld", (long)age);
    NSLog(@"%@", sex);
}

5.删除数据

NSString * sqlStr = @"DELETE FROM searchRecord;";
if ([_db executeUpdate:sqlStr]) {
    NSLog(@"删除成功");
}else{
    NSLog(@"删除失败");
}

6.修改数据

 NSString * sqlStr = @"UPDATE searchRecord SET age=20 WHERE age=18;";
if ([_db executeUpdate:sqlStr]) {
    NSLog(@"修改成功");
}else{
    NSLog(@"修改失败");
}

7.FMDB线程安全

这里就不做过多介绍可以参考博客http://blog.csdn.net/kingkong1024/article/details/7744285

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,532评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,252评论 4 61
  • 公司的运营应该是彻底思考理念,选出可行的部分,分享价值观,交给一线员工。 领先定律就是创造一个能让你成为第一的新领...
    _鹰击长空_阅读 340评论 0 1
  • Good morning dear professors: My name is XXX,it's really ...
    刘二傻阅读 1,507评论 0 43
  • 1,上学时候,老师说,不能偏科,偏科影响考学,最弱的科目,有决定性作用。 2,进入社会,你的特长,起了决定性作用。...
    七日夜阅读 291评论 0 0