1.怎么导入PlausibleDatabase.framework框架
先下载PlausibleDatabase.framework框架包,然后把该包直接加入到库中,然后再加入#import <PlausibleDatabase/PlausibleDatabase.h>头文件
下载地址:http://code.Google.com/p/pldatabase/ 在这里可以下载和查看文档和代码.
第三方sqlITE封装库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");查询 *** 作
执行查询 *** 作可以使用 -[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];执行准备
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数据库的代码 下面的代码其实满简单的,简单介绍一下怎么样在iphone代码中连接sqlite数据库。在此之前,要引入PlausibleDatabase.framework和libsqlite3.dylib文件。
下面的是database.h头文件:
#import <Foundation/Foundation.h>
#import <PlausibleDatabase/PlausibleDatabase.h>
@interface DataBase : NSObject {
}
+ (PLsqliteDatabase *) setup;
+ (voID) close;
@end
#import "DataBase.h"
#import <PlausibleDatabase/PlausibleDatabase.h>
static PLsqliteDatabase * dbPointer;
@implementation DataBase
//单例
+ (PLsqliteDatabase *) setup{
if (dbPointer) {
return dbPointer;
}
NSLog(@"%@",NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,NSUserDomainMask,YES));
Nsstring *documentPath = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,YES) objectAtIndex:0];
Nsstring *realPath = [documentPath stringByAppendingPathComponent:@"book.sqlite"];
Nsstring *sourcePath = [[NSBundle mainBundle] pathForResource:@"Book" ofType:@"sqlite"];
NSfileManager *fileManager = [NSfileManager defaultManager];
if (![fileManager fileExistsAtPath:realPath]) {
NSError *error;
if (![fileManager copyItemAtPath:sourcePath topath:realPath error:&error]) {
NSLog(@"%@",[error localizedDescription]);
}
}
NSLog(@"复制sqlite到路径:%@成功。",realPath);
//把dbpointer地址修改为可修改的realPath。
dbPointer = [[PLsqliteDatabase alloc] initWithPath:realPath];
[dbPointer open];
return dbPointer;
}
+ (voID) close{
if (dbPointer) {
[dbPointer close];
dbPointer = NulL;
}
}
@end
代码的调用如下的例子: + (NSArray *) findAll{
PLsqliteDatabase *dataBase = [DataBase setup];
ID<PLResultSet>rs;
rs = [dataBase executequery:@"SELECT *FROM Book"];
//定义一个数组存放所有书籍的信息
NSMutableArray *books = [[NSMutableArray alloc]init];
//把rs中的数据库信息遍历到books数组中
while ([rs next]) {
Nsstring *ID = [rs objectForColumn:@"ID"];
Nsstring *name = [rs objectForColumn:@"name"];
Nsstring *author = [rs objectForColumn:@"Author"];
Nsstring *publishHouse = [rs objectForColumn:@"PublishHouse"];
Nsstring *date = [rs objectForColumn:@"Date"];
Nsstring *brIEfIntroducation = [rs objectForColumn:@"BrIEfIntroducation"];
//初始化book存放到books里面
Book *book = [[Book alloc]initWithID:ID name:name publishHouse:publishHouse author:author brIEfIntroducation:brIEfIntroducation date:date];
[books addobject:book];
}
[rs close]; return books; } 总结
以上是内存溢出为你收集整理的第三方SQLITE打包库pldatabase的介绍全部内容,希望文章能够帮你解决第三方SQLITE打包库pldatabase的介绍所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)