首先需要在專案中引用sqlite
3的開發包,下面是在iphone sdk
3.0下的目錄:
/developer/platforms/iphoneos.platform/developer/sdks/iphoneos3.0.sdk/usr/lib/libsqlite3.0.dylib
到這裡你需要事先用命令來建立sqlite
3的資料庫檔案,並在其中建立自己的表等等,然後作為資源檔案新增到專案,然後在程式第一次執行的時候複製到程式下的documents或其他目錄下,關於sqlite
3的基本操作網上已經有不少文章,這裡就不重複了。
在iphone中使用sqlite 3
主要步驟如下: 1
首先獲取iphone上sqlite 3
的資料庫檔案的位址 2
開啟sqlite 3
的資料庫檔案 3
定義sql文 4
邦定執行sql所需要的引數
5執行sql文,並獲取結果
6釋放資源
7關閉sqlite 3
資料庫。
下面結合**來示範一下。
// 首先獲取iphone上sqlite3的資料庫檔案的位址
nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);
nsstring *documentsdirectory = [paths objectatindex:0];
nsstring
*path = [
documentsdirectory
@"database_name"];
// 開啟sqlite3的資料庫檔案
sqlite3 *database;sqlite3_open([path utf8string], &database);
// 定義sql文
sqlite3_stmt *stmt;
const
char
*sql = "select * from table_name where pk=? and name=?";
sqlite3_prepare_v2(database, sql, -1, &stmt, null);
// 邦定第乙個int引數
sqlite3_bind_int(stmt, 1, 1);
// 邦定第二個字串引數
sqlite3_bind_text(stmt, 2, [title utf8string], -1, sqlite_transient);
// 執行sql文,並獲取結果
sqlite3_step(stmt);
// 釋放資源
sqlite3_finalize(stmt);
// 關閉sqlite3資料庫
sqlite3_close(database);
iphone中的sqlite應用
sqlite是基於c的api,在iphone中的執行速度超級快(在蘋果**上也有乙個對比,確實應該是速度最快的)。
由於在iphone3
.0上已經支援了core data,是蘋果乙個新的api,並且是基於sqlite的。速度也是非常快吧,信不信由你。所以我們對sqlite僅需要懂一些即可,以下是一些基礎資訊
//**********==
首先在frameworks 中加入sqlite 的庫: lib/libsqlite3.dylib
完整路徑如下:
/developer/platforms/iphoneos.platform/developer/sdks/iphoneos3.0.sdk/usr/lib/libsqlite3.dylib
然後包含標頭檔案#import
一般操作:
【1】開啟資料庫,如果沒有,那麼建立乙個
sqlite3* database_;
-(bool) open
return
yes;
}if(sqlite3_open([path utf8string], &database_) == sqlite_ok) else
return no; }
【2】建立**
//建立**,假設有五個字段,(id,cid,title,imagedata ,imagelen )
//說明一下,id為**的主鍵,必須有。
//cid,和title都是字串,imagedata是二進位制資料,imagelen 是該二進位制資料的長度。
- (bool) createchannelstable:(sqlite3*)db
int success = sqlite3_step(statement);
sqlite3_finalize(statement);
if ( success != sqlite_done)
nslog
(@"create table 'channels' successed.");
return yes; }
【3】向**中插入一條記錄
//假設channle是乙個資料結構體,儲存了一條記錄的內容。
- (bool) insertonechannel:(channel*)channel
//這裡的數字1,2,3,4代表第幾個問號
sqlite3_bind_text(statement, 1, [channel.id_ utf8string], -1, sqlite_transient);
sqlite3_bind_text(statement, 2, [channel.title_ utf8string], -1, sqlite_transient);
sqlite3_bind_blob(statement, 3, [imagedata bytes], imagelen, sqlite_transient);
sqlite3_bind_int(statement, 4, imagelen);
success = sqlite3_step(statement);
sqlite3_finalize(statement);
if (success == sqlite_error)
nslog(@"insert one channe:id = %@",channel.
id);
return yes; }
【4】資料庫查詢
這裡獲取**中所有的記錄,放到陣列fchannels中。
- (void) getchannels:(nsmutablearray*)fchannels
//查詢結果集中一條一條的遍歷所有的記錄,這裡的數字對應的是列值。
while (sqlite3_step(statement) == sqlite_row)
[fchannels addobject:channel];
[channel release];
}sqlite3_finalize(statement);
}
iOS SQLite資料庫操作
首先介紹一下sqlite資料庫以及為什麼要用ta sqlite是一款輕型的嵌入式資料庫,它占用資源非常的低,在嵌入式裝置中,可能只需要幾百k的記憶體就夠了。它的處理速度比mysql postgresql這兩款著名的資料庫都還快。資料庫的儲存結構和excel很像,以表 table 為單位新建資料庫檔案...
iOS sqlite資料庫的基本操作
介紹 sqlite3 3是版本 是本地系統中的乙個小型資料庫,因為它沒有在資料維護和安全上做過多的操作,所以它儲存處理資料時,非常簡單方便,但是它是不安全和不可靠的,如果一旦誤操作刪除了資料,是沒有辦法恢復的 而sql server 和oracal這種資料庫屬於重量級的,它們都有備份機制,因此它們建...
IOS sqlite資料庫增刪改查
簡單封裝sqlite資料庫操作類 basedb 用於完畢對sqlite的增刪改查。使用前先導入libsqlite3.0.dylib庫 basedb.h sqlitedemo created by 趙超 on 14 8 26.import import sqlite3.h inte ce basedb...