自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone開發(fā) 第三方SQLITE封裝庫Pldatabase

移動(dòng)開發(fā) iOS
本文介紹的是iPhone開發(fā) 第三方SQLITE封裝庫Pldatabase,很詳細(xì)的介紹了Pldatabase封裝庫,來看內(nèi)容。

iPhone開發(fā) 第三方SQLITE封裝庫Pldatabase是本文要介紹的內(nèi)容,不多說,我們先來看內(nèi)容?;巳軙r(shí)間,把原來使用原生SqliteAPI寫的代碼都改成了PLSqliteDatabase的操作,下載解壓后把framework導(dǎo)入到項(xiàng)目中. 項(xiàng)目中需要sqlite.dylib,不然無法鏈接成功.。

pldatabase的網(wǎng)站地址:http://plsqlite.narod.ru/http://code.google.com/p/pldatabase/ 在這里可以下載和查看文檔和代碼.

下面我翻譯一下其最簡(jiǎn)單的入門知識(shí),在項(xiàng)目過程中, 發(fā)現(xiàn)這些其實(shí)也夠用, 但異常處理這些我還沒引進(jìn)來使用.

基本使用指南

創(chuàng)建一個(gè)鏈接

為存在數(shù)據(jù)庫文件打開一個(gè)鏈接:

  1. PLSqliteDatabase *db = [[PLSqliteDatabase alloc] initWithPath:  @"/path/to/database"];    
  2. if (![db open])    
  3.     NSLog(@"Could not open database");    
  4.  PLSqliteDatabase *db = [[PLSqliteDatabase alloc] initWithPath:  @"/path/to/database"];  
  5.  if (![db open])  
  6.      NSLog(@"Could not open database"); 

更新操作(即沒有返回記錄集)

更新操作可以使用 -[PLDatabase executeUpdate:]

  1. if (![db executeUpdate: @"CREATE TABLE example (id INTEGER)"])    
  2.     NSLog(@"Table creation failed");    
  3. if (![db executeUpdate: @"INSERT INTO example (id) VALUES (?)", [NSNumber numberWithInteger: 42]])    
  4.     NSLog(@"Data insert failed");    
  5.  if (![db executeUpdate: @"CREATE TABLE example (id INTEGER)"])  
  6.      NSLog(@"Table creation failed");  
  7.  if (![db executeUpdate: @"INSERT INTO example (id) VALUES (?)", [NSNumber numberWithInteger: 42]])  
  8.      NSLog(@"Data insert failed"); 

查詢操作

執(zhí)行查詢操作可以使用 -[PLDatabase executeQuery:]. 該操作返回結(jié)果集是一個(gè)對(duì)象為PLResult的NSObject實(shí)例.使用方法如下

  1. id<PLResultSet> results = [db executeQuery: @"SELECT id FROM example WHERE id = ?", [NSNumber numberWithInteger: 42]];    
  2. while ([results next]) {    
  3.     NSLog(@"Value of column id is %d", [results intForColumn: @"id"]);    
  4. }    
  5. // 如果沒有關(guān)閉結(jié)果集不會(huì)導(dǎo)致內(nèi)存泄漏, 但會(huì)結(jié)果集會(huì)被保留直到下一次的查詢    
  6. [results close];    
  7.  id<PLResultSet> results = [db executeQuery: @"SELECT id FROM example WHERE id = ?", [NSNumber numberWithInteger: 42]];  
  8.  while ([results next]) {  
  9.      NSLog(@"Value of column id is %d", [results intForColumn: @"id"]);  
  10.  }  
  11.  // 如果沒有關(guān)閉結(jié)果集不會(huì)導(dǎo)致內(nèi)存泄漏, 但會(huì)結(jié)果集會(huì)被保留直到下一次的查詢  
  12.  [results close]; 

執(zhí)行準(zhǔn)備

PLPreparedStatement支持SQL操作的預(yù)編譯和參數(shù)優(yōu)先綁定. 執(zhí)行準(zhǔn)備的操作可以調(diào)用:-[PLDatabase prepareStatement:].

  1. id<PLPreparedStatemet> stmt = [db prepareStatement: @"INSERT INTO example (name, color) VALUES (?, ?)"];   
  2. // 綁定參數(shù) [stmt bindParameters: [NSArray arrayWithObjects: @"Widget", @"Blue", nil]];  
  3.  // 執(zhí)行插入 if ([stmt executeUpdate] == NO)     NSLog(@"INSERT failed"); 

基于命名參數(shù)的綁定

當(dāng)參數(shù)很多的時(shí)候, 能過命名參數(shù)綁定的可讀性強(qiáng)很多

用法如下:

  1. // 準(zhǔn)備    
  2. id<PLPreparedStatement> stmt = [db prepareStatement: @"INSERT INTO test (name, color) VALUES (:name, :color)"];    
  3. // 使用字典綁定參數(shù)    
  4. NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithCapacity: 2];    
  5. [parameters setObject: @"Widget" forKey: @"name"];    
  6. [parameters setObject: @"Blue" forKey: @"color"];    
  7. [stmt bindParameterDictionary: parameters];    
  8. // 執(zhí)行插入    
  9. if ([stmt executeUpdate] == NO)    
  10.     NSLog(@"INSERT failed");    
  11.  // 準(zhǔn)備  
  12.  id<PLPreparedStatement> stmt = [db prepareStatement: @"INSERT INTO test (name, color) VALUES (:name, :color)"];  
  13.  // 使用字典綁定參數(shù)  
  14.  NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithCapacity: 2];  
  15.  [parameters setObject: @"Widget" forKey: @"name"];  
  16.  [parameters setObject: @"Blue" forKey: @"color"];  
  17.  [stmt bindParameterDictionary: parameters];  
  18.  // 執(zhí)行插入  
  19.  if ([stmt executeUpdate] == NO)  
  20.      NSLog(@"INSERT failed"); 

小結(jié):詳解第三方SQLITE封裝庫Pldatabase的內(nèi)容介紹完了,關(guān)于PLDatabase的基本操作也完了. 希望本文對(duì)你有所幫助。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-15 17:20:25

iPhone應(yīng)用Sqlite3FMDB

2019-07-30 11:35:54

AndroidRetrofit

2015-11-05 16:44:37

第三方登陸android源碼

2012-03-01 20:42:12

iPhone

2014-07-22 10:56:45

Android Stu第三方類庫

2011-08-05 16:50:00

iPhone 數(shù)據(jù) Sqlite

2014-07-23 08:55:42

iOSFMDB

2022-01-14 09:57:14

鴻蒙HarmonyOS應(yīng)用

2010-03-03 15:10:49

第三方Python庫

2013-08-14 09:50:32

iOS類庫

2022-05-23 13:50:20

開發(fā)封裝

2019-09-03 18:31:19

第三方支付電商支付行業(yè)

2011-07-25 16:22:44

iPhone RegexKitLi 表達(dá)式

2012-04-03 13:42:03

iPhone

2014-02-10 10:22:33

微信開發(fā)者

2009-03-12 15:32:49

WEB開發(fā)

2012-01-04 14:02:26

JsonCpp

2022-06-06 07:50:55

PythonJSON

2011-08-16 17:34:08

iPhone開發(fā)RegexKitLit正則表達(dá)式

2021-10-11 06:38:52

Go開源庫語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)