ios中Pldatabase的用法
将PLDATABASE加入到工程
下载PLDatabase 的dmg文件
将PLDatabase的framework复制到工程根目录在工程中加入该framework使用该framework进行数据库操作 将PLDATABASE加入到工程
下载PLDatabase 的dmg文件
将PLDatabase的framework复制到工程根目录在工程中加入该framework使用该framework进行数据库操作 加入API库
在项目中点击Add > Existing Frameworks,然后选择iphoneSimulatorx.x.sdk/usr/lib/libsqlite3..dylib
在项目中点击Add > Existing Frameworks > ,谈后选择PlausibleDatabase.framework在我们自己的源文件头部加入:
#import <PlausibleDatabase/PlausibleDatabase.h>
iPhone开发 第三方SQLITE封装库Pldatabase是本文要介绍的内容,不多说,我们先来看内容。花了三周时间,把原来使用原生SqliteAPI写的代码都改成了PLSqliteDatabase的操作,下载解压后把framework导入到项目中. 项目中需要sqlite.dylib,不然无法链接成功.。
pldatabase的网站地址:网站http://plsqlite.narod.ru/:下载地址:http://code.google.com/p/pldatabase/ 在这里可以下载和查看文档和代码.
下面我翻译一下其最简单的入门知识,在项目过程中, 发现这些其实也够用, 但异常处理这些我还没引进来使用.
基本使用指南
创建一个链接
为存在数据库文件打开一个链接:
- PLSqliteDatabase *db = [[PLSqliteDatabase alloc] initWithPath: @"/path/to/database"];
- if (![db open])
- NSLog(@"Could not open database");
更新操作(即没有返回记录集)
更新操作可以使用 -[PLDatabase executeUpdate:]
- if (![db executeUpdate: @"CREATE TABLE example (id INTEGER)"])
- NSLog(@"Table creation failed");
- if (![db executeUpdate: @"INSERT INTO example (id) VALUES (?)", [NSNumber numberWithInteger: 42]])
- NSLog(@"Data insert failed");
- if (![db executeUpdate: @"CREATE TABLE example (id INTEGER)"])
- NSLog(@"Table creation failed");
- if (![db executeUpdate: @"INSERT INTO example (id) VALUES (?)", [NSNumber numberWithInteger: 42]])
- NSLog(@"Data insert failed");
查询操作
执行查询操作可以使用 -[PLDatabase executeQuery:]. 该操作返回结果集是一个对象为PLResult的NSObject实例.使用方法如下
- id<PLResultSet> results = [db executeQuery: @"SELECT id FROM example WHERE id = ?", [NSNumber numberWithInteger: 42]];
- while ([results next]) {
- NSLog(@"Value of column id is %d", [results intForColumn: @"id"]);
- }
- // 如果没有关闭结果集不会导致内存泄漏, 但会结果集会被保留直到下一次的查询
- [results close];
- id<PLResultSet> results = [db executeQuery: @"SELECT id FROM example WHERE id = ?", [NSNumber numberWithInteger: 42]];
- while ([results next]) {
- NSLog(@"Value of column id is %d", [results intForColumn: @"id"]);
- }
- // 如果没有关闭结果集不会导致内存泄漏, 但会结果集会被保留直到下一次的查询
- [results close];
执行准备
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 = [db prepareStatement: @"INSERT INTO test (name, color) VALUES (:name, :color)"];
- // 使用字典绑定参数
- NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithCapacity: 2];
- [parameters setObject: @"Widget" forKey: @"name"];
- [parameters setObject: @"Blue" forKey: @"color"];
- [stmt bindParameterDictionary: parameters];
- // 执行插入
- if ([stmt executeUpdate] == NO)
- NSLog(@"INSERT failed");
小结:详解第三方SQLITE封装库Pldatabase的内容介绍完了,关于PLDatabase的基本操作也完了. 希望本文对你有所帮助。
原文地址:http://mobile.51cto.com/iphone-278347.htm
ios中Pldatabase的用法的更多相关文章
- ios中Pldatabase的用法(3)
#import "ViewController.h" @interface ViewController () @property(nonatomic,retain)PLSqlit ...
- ios中Pldatabase的用法(4)
封装成DAO@implementation SqlHelper +(BOOL)InsertSql:(NSString *)sql paramet:(NSMutableDictionary *)parm ...
- ios中Pldatabase的用法(2)
@implementation AppGlobal static NSString* strHostName; static NSString* strVersion; static PLSqlite ...
- iOS中block的用法 以及和函数用法的区别
ios中block的用法和函数的用法大致相同 但是block的用法的灵活性更高: 不带参数的block: void ^(MyBlock)() = ^{}; 调用的时候 MyBlock(); 带参数的 ...
- iOS中Block的用法,举例,解析与底层原理(这可能是最详细的Block解析)
1. 前言 Block:带有自动变量(局部变量)的匿名函数.它是C语言的扩充功能.之所以是拓展,是因为C语言不允许存在这样匿名函数. 1.1 匿名函数 匿名函数是指不带函数名称函数.C语言中,函数是怎 ...
- ios中图片拉伸用法
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCap ...
- iOS中的CocoaPods用法及常用命令
CocoaPods是什么? ***CocoaPods的使用场景:*** 1. 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用 ...
- iOS中NSScanner 的用法
NSScanner是一个类,用于在字符串中扫描指定的字符,尤其是把它们翻译/转换为数字和别的字符串.可以创建NSScanner时制定他的String属性,然后scanner会按照你的要求从头到尾扫描这 ...
- IOS中NSUserDefaults的用法(轻量级本地数据存储)
NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefa ...
随机推荐
- GridControl常见用法【转】
刚接触DevExpress第三方控件,把GridControl的常见用法整理一下,以供参考: 说明: gcTest GridControl gvText GridView //隐藏最上面的G ...
- libxml2 使用教程【转】
https://blog.csdn.net/zhoudaxia/article/details/8565731# 本文整理自官方使用教程http://xmlsoft.org/tutorial/inde ...
- ScaleIO 1.32现在可以免费下载安装使用了(除生产环境之外)
EMC World 2015会上宣布, ScaleIO 1.32可以免费下载使用在非生产环境上了. 这个可以免费下载的版本叫做Free and Drictionless (F&F) downl ...
- AccessText热键的使用
AccessText可以用于Label与别的控件(常用于TextBox)绑定热键.也可以单独给别的控件设置热键 1.可以在label中使用AccessText 代码: <Label Horizo ...
- NodeJS之Mac初体验
NodeJS之前在Window试用过一下,不过在mac上这种类Unix上属于第一次使用,JavaScript是脚本语言,脚本语言都需要一个解析器才能运行,通常我们在Html页面写的JS,浏览器充当了解 ...
- Python3 OpenCV应用
1.openCV介绍 openCV:Open Source Computer Vision Library.OpenCV于1999年由Intel建立,如今由Willow Garage提供支持.Open ...
- 基于Deep Learning的中文分词尝试
http://h2ex.com/1282 现有分词介绍 自然语言处理(NLP,Natural Language Processing)是一个信息时代最重要的技术之一,简单来讲,就是让计算机能够理解人类 ...
- Excel长数字防止转换为科学计数法
网上的一个方法是,加单引号,但是不好看. 我的处理,是先加,再替换成带格式的. strTable = Formater.SimpleTable(dt, "aaa", "| ...
- GPUImage API 文档之GPUImagePicture类
GPUImagePicture类静态图像处理操作,它可以是需要处理的静态图像,也可以是一张作为纹理使用的图片,调用向它发送processImage消息,进行图像滤镜处理. 方法 - (id)initW ...
- yii源码三 -- db
<AR> CActiveRecord:path:/framework/db/ar/CActiveRecord.phpoverview:is the base class for class ...