(一一四)使用FMDB操作SQLite数据库
2015-08-09 23:51
316 查看
上节介绍了用系统自带的C语言库操作SQLite的方法,比较繁琐,使用FMDB会大幅度简化,并且是面向对象的,使用十分方便。
使用步骤如下:
先从github下载FMDB框架,然后把它导入工程。
①导入libsqlite3.0.dylib库。
②导入主头文件FMDatabase.h。
③创建数据库对象,传入路径,打开数据库,如果数据库不存在会被创建。
例如创建表格和插入数据都是使用Update。
需要注意的是OC字符串以%@出现在SQL语句中不用单引号包括,否则会使得存入的数据成为?。
使用步骤如下:
先从github下载FMDB框架,然后把它导入工程。
①导入libsqlite3.0.dylib库。
②导入主头文件FMDatabase.h。
③创建数据库对象,传入路径,打开数据库,如果数据库不存在会被创建。
NSString *sqlitePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"test1.sqlite"]; FMDatabase *db = [FMDatabase databaseWithPath:sqlitePath]; [db open];④查询操作使用executeQuery:方法,其他操作使用executeUpdate:方法。
例如创建表格和插入数据都是使用Update。
需要注意的是OC字符串以%@出现在SQL语句中不用单引号包括,否则会使得存入的数据成为?。
// 建表 [db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_product (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, price real);"]; // 插入数据 // 注意如果使用OC字符串%@,不用单引号 [db executeUpdateWithFormat:@"INSERT INTO t_product (name,price) values (%@,%d)",[NSString stringWithFormat:@"饮料%d",arc4random_uniform(10000)],arc4random_uniform(100)];⑤查询操作通过Query,拿到结果集,结果集可以看作迭代器,调用next属性到达下一个元素,当前位置可以取出元素,如下:
// 查询数据 FMResultSet *set = [db executeQuery:@"SELECT * FROM t_product"]; while (set.next) { NSString *name = [set stringForColumn:@"name"]; double price = [set doubleForColumn:@"price"]; NSLog(@"%@ %f",name,price); }
相关文章推荐
- mysql的备份与恢复(基本概念)
- mysql之索引(基本概念)
- Memcached分布式算法详解
- sql 分页rownumber方式
- Oracle数据库查询优化方案(处理上百万级记录如何提高处理查询速度)
- (一一三)使用系统自带框架操作SQLite3数据库
- (一一三)使用系统自带框架操作SQLite3数据库
- vs+mysql+ef配置方法
- 使用Elasticache创建多AZ的redis集群
- MySQL详解--锁
- memcache
- Hive集成Mysql作为元数据时,提示错误:Specified key was too long; max key length is 767 bytes
- mysql 经典sql收集
- 之前写的检测mysql 从服务器延迟的脚本
- 有用的MySQL语句
- ORACLE 第7节 创建和管理表
- (一)SQLite与SQL语句基础
- (一)SQLite与SQL语句基础
- Mysql优化20条建议
- mysql不能链接远程,报(Host '***.***.***.***' is not allowed to connect to this MySQL server)