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

iPhone開發 第三方SQLITE封裝庫Pldatabase

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

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

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

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

基本使用指南

創建一個鏈接

為存在數據庫文件打開一個鏈接:

  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"); 

查詢操作

執行查詢操作可以使用 -[PLDatabase executeQuery:]. 該操作返回結果集是一個對象為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. // 如果沒有關閉結果集不會導致內存泄漏, 但會結果集會被保留直到下一次的查詢    
  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.  // 如果沒有關閉結果集不會導致內存泄漏, 但會結果集會被保留直到下一次的查詢  
  12.  [results close]; 

執行準備

PLPreparedStatement支持SQL操作的預編譯和參數優先綁定. 執行準備的操作可以調用:-[PLDatabase prepareStatement:].

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

基于命名參數的綁定

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

用法如下:

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

小結:詳解第三方SQLITE封裝庫Pldatabase的內容介紹完了,關于PLDatabase的基本操作也完了. 希望本文對你有所幫助。

責任編輯:zhaolei 來源: 互聯網
相關推薦

2019-07-30 11:35:54

AndroidRetrofit

2015-11-05 16:44:37

第三方登陸android源碼

2011-08-15 17:20:25

iPhone應用Sqlite3FMDB

2012-03-01 20:42:12

iPhone

2014-07-22 10:56:45

Android Stu第三方類庫

2011-08-05 16:50:00

iPhone 數據 Sqlite

2014-07-23 08:55:42

iOSFMDB

2022-01-14 09:57:14

鴻蒙HarmonyOS應用

2010-03-03 15:10:49

第三方Python庫

2013-08-14 09:50:32

iOS類庫

2022-05-23 13:50:20

開發封裝

2019-09-03 18:31:19

第三方支付電商支付行業

2009-12-31 14:38:34

Silverlight

2017-12-11 15:53:56

2016-10-21 14:09:10

2011-07-25 16:22:44

iPhone RegexKitLi 表達式

2012-04-03 13:42:03

iPhone

2021-10-11 06:38:52

Go開源庫語言

2009-03-12 15:32:49

WEB開發

2014-02-10 10:22:33

微信開發者
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕 亚洲一区 | 日韩伦理一区二区三区 | 欧美精品被| 欧美黄色片| 成人精品鲁一区一区二区 | 91精品国产91久久久久久最新 | 天天宗合网 | 色综合一区二区三区 | 成人免费视频网站 | 欧美日本韩国一区二区 | 亚洲精品一区二三区不卡 | 国产成人一区二区三区精 | 中文字幕免费观看 | 欧美日韩一区在线 | 久久亚洲春色中文字幕久久久 | 亚洲男人天堂2024 | 中文字幕在线一区二区三区 | 国产精品日产欧美久久久久 | 亚洲一区二区三区桃乃木香奈 | 日韩精品在线视频免费观看 | 日本午夜在线视频 | 亚洲日韩欧美一区二区在线 | 四虎永久影院 | 亚洲成人国产综合 | 国产精品99久久久久久久vr | 精品久久久久一区二区国产 | 国产高清在线精品 | 9久9久9久女女女九九九一九 | 亚洲综合一区二区三区 | 国产伦精品一区二区三区高清 | 久久久久久国产精品免费免费 | 日本色婷婷 | 国产精品不卡 | 国产不卡一区在线观看 | 爱爱视频日本 | 日本精品在线一区 | 玖玖操 | 91人人澡人人爽 | 国产精品96久久久久久 | 日韩在线视频一区二区三区 | 国产精品久久精品 |