源自:http://aminby.net/2010/08/iphone-sqlite-pldatabase-introduce/
引文
花了三周时间,把原来使用原生sqliteAPI写的代码都改成了PLsqliteDatabase的操作.
下载解压后把framework导入到项目中. 项目中需要sqlite.dylib,不然无法链接成功.
pldatabase的网站地址:http://plsqlite.narod.ru/http://code.google.com/p/pldatabase/在这里可以下载和查看文档和代码.
下面我翻译一下其最简单的入门知识,在项目过程中,发现这些其实也够用,但异常处理这些我还没引进来使用.
基本使用指南
创建一个链接
更新操作(即没有返回记录集)
更新操作可以使用 -[PLDatabase executeUpdate:]
查询操作
执行查询操作可以使用 -[PLDatabase executeQuery:]. 该操作返回结果集是一个对象为PLResult的NSObject实例.使用方法如下
执行准备
PLPreparedStatement支持sql操作的预编译和参数优先绑定. 执行准备的操作可以调用:-[PLDatabase prepareStatement:].
id<PLPreparedStatemet> stmt = [db prepareStatement: @"INSERT INTO example (name,color) VALUES (?,?)"]; // 绑定参数 [stmt bindParameters: [NSArray arrayWithObjects: @"Widget",@"Blue",nil]]; // 执行插入 if ([stmt executeUpdate] == NO) NSLog(@"INSERT Failed");
基于命名参数的绑定
当参数很多的时候,能过命名参数绑定的可读性强很多
用法如下:
- //准备
- id<PLPreparedStatement>stmt=[dbprepareStatement:@"INSERTINTOtest(name,color)VALUES(:name,:color)"];
- //使用字典绑定参数
- NSMutableDictionary*parameters=[NSMutableDictionarydictionaryWithCapacity:2];
- [parameteRSSetObject:@"Widget"forKey:@"name"];
- [parameteRSSetObject:@"Blue"forKey:@"color"];
- [stmtbindParameterDictionary:parameters];
- //执行插入
- if([stmtexecuteUpdate]==NO)
- NSLog(@"INSERTFailed");