第三方SQLITE打包库pldatabase的介绍

第三方SQLITE打包库pldatabase的介绍,第1张

概述1. 怎么导入PlausibleDatabase.framework框架 先下载PlausibleDatabase.framework框架包,然后把该包直接加入到库中,然后再加入#import <PlausibleDatabase/PlausibleDatabase.h>头文件 下载地址:http://code.google.com/p/pldatabase/ 在这里可以下载和查看文档和代码. 第

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.frameworklibsqlite3.dylib文件。
下面的是database.h头文件:


#import <Foundation/Foundation.h>

#import <PlausibleDatabase/PlausibleDatabase.h>


@interface DataBase : NSObject {


}


+ (PLsqliteDatabase *) setup;


+ (voID) close;


@end


下面为database.m文件:

#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的介绍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/1172483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存