成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

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

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

基本使用指南

創(chuàng)建一個鏈接

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

  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é)果集是一個對象為PLResult的NSObject實例.使用方法如下

  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. // 如果沒有關閉結(jié)果集不會導致內(nèi)存泄漏, 但會結(jié)果集會被保留直到下一次的查詢    
  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.  // 如果沒有關閉結(jié)果集不會導致內(nèi)存泄漏, 但會結(jié)果集會被保留直到下一次的查詢  
  12.  [results close]; 

執(zhí)行準備

PLPreparedStatement支持SQL操作的預編譯和參數(shù)優(yōu)先綁定. 執(zhí)行準備的操作可以調(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ù)的綁定

當參數(shù)很多的時候, 能過命名參數(shù)綁定的可讀性強很多

用法如下:

  1. // 準備    
  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.  // 準備  
  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)容介紹完了,關于PLDatabase的基本操作也完了. 希望本文對你有所幫助。

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

2019-07-30 11:35:54

AndroidRetrofit

2011-08-15 17:20:25

iPhone應用Sqlite3FMDB

2015-11-05 16:44:37

第三方登陸android源碼

2012-03-01 20:42:12

iPhone

2011-08-05 16:50:00

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

2014-07-22 10:56:45

Android Stu第三方類庫

2014-07-23 08:55:42

iOSFMDB

2022-01-14 09:57:14

鴻蒙HarmonyOS應用

2013-08-14 09:50:32

iOS類庫

2010-03-03 15:10:49

第三方Python庫

2022-05-23 13:50:20

開發(fā)封裝

2019-09-03 18:31:19

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

2011-07-25 16:22:44

iPhone RegexKitLi 表達式

2012-04-03 13:42:03

iPhone

2009-03-12 15:32:49

WEB開發(fā)

2014-02-10 10:22:33

微信開發(fā)者

2021-10-11 06:38:52

Go開源庫語言

2016-10-21 14:09:10

2009-12-31 14:38:34

Silverlight

2017-12-11 15:53:56

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产福利视频 | 国产精品成av人在线视午夜片 | 91成人在线视频 | www国产亚洲精品 | 欧美5区 | 国产精品乱码一区二三区小蝌蚪 | 欧美精品91 | 亚洲精品欧美 | 欧美电影免费网站 | 国产激情综合五月久久 | 成人三级在线观看 | 欧美一区二区三区 | 国产欧美一区二区三区久久手机版 | 成人午夜精品 | 久久国产成人精品国产成人亚洲 | 97伦理最新伦理 | 亚洲国产精品久久久久婷婷老年 | 精品无码久久久久久国产 | 国外成人在线视频 | 久久国产精品视频 | 精品国产乱码久久久久久闺蜜 | 亚洲91精品| 亚洲a在线观看 | 国产a级毛片 | 国产一二区免费视频 | 91精品久久久 | 精品视频一区二区 | 91视在线国内在线播放酒店 | 狠狠躁夜夜躁人人爽天天高潮 | 一区二区三区国产 | 欧美精品久久久久 | 极品国产视频 | 韩日一区二区三区 | 欧美日韩福利视频 | 五月天婷婷综合 | 日韩欧美中文在线 | 成人av久久 | 男女网站免费观看 | 在线免费观看日本视频 | 国产1区2区3区 | av片在线观看 |