歸納筆記015:iOS中的SQLite數據庫

iOS的SQLite編程

iOS的SQLite編程並沒有使用OC面向對象的語法,而是使用了原生的C函數庫。

爲了在項目中使用iOS的SQLite編程API,需要先完成如下兩步:

(1)   爲項目增加lisqlite3.dylib。

(2)   在需要使用SQLiteAPI的OC類中使用如下代碼導入libsqlite3.dylib:

#import<sqlite3.h>

SQLite數據庫操作步驟如下:

(1)    調用sqlite3_open()函數打開與數據庫的連接。

(2)    如果執行簡單的DDL、DML語句,則直接調用sqlite3_exec()函數執行這些SQL語句即可。

(3)    如果預編譯的SQL語句中包含了佔位符參數,還需要調用sqlite3_prepare_v2()函數預編譯SQL語句。

(4)    如果預編譯的SQL語句中包含了佔位符參數,還需要調用sqlite3_bind_xx()函數爲佔位符參數綁定參數值。

(5)    如果預編譯Statement執行的SQL語句是DDL或DML,則調用sqlite3_step()函數執行SQL語句即可;如果預編譯Statement執行的SQL語句是查詢語句,則循壞調用sqlite3_step()函數一次取出每個數據行即可。

(6)    如果程序中使用預編譯Statemen執行過SQL語句,則調用sqlite3_finalize()函數關閉sqlite3_stmt。

(7)    調用sqlite3_close()函數關閉數據庫連接。


創建數據庫和表

使用sqlit3_open()函數即可打開或創建數據庫,代碼如下:

Sqlite3* database;

Sqlite3_open([[selfdbPath]UTF8String], &database);

上面代碼用於打開或者創建一個SQLite數據庫。

接下來爲創建數據庫表:

Const char * createSQL = “create table if notexists word_inf\(_id integer primary key autoincrement, \word,\detail)”;

//執行表語句

Int result = sqlite3_exec(database, createSQL,NULL, NULL, &errMsg);

 

使用SQL語句執行查詢

 Sqlite3_exec()函數可執行無須返回值的SQL語句,一般用於執行DDL或DML語句;如果需要執行查詢語句,一般會調用sqlite3_prepare_v2()預編譯查詢語句,然後循環調用sqlite3_step()函數取出查詢結果集。


使用sqlite3工具

Mac OS X的lion版或更高版本的系統已經自帶sqlite3工具,它是一個簡單的SQLite數據庫管理工具,類似於MySQL提供的命令行窗口。開發者可以利用該工具來查詢、管理數據庫。

Sqlite3中常用的命令如下:

(1)   .datbases:查看當前數據庫。

(2)   .tables:查看當前數據庫裏的數據表。

(3)   .help:查看sqlite3支持的命令。

需要指出的是,SQLite內部只支持NULL、INTEGER、REAL、TEXT和BLOB這5種類型,但實際上SQLite完全可以接收varchar(n)、char(n)、decimal(p,s)等數據類型,知不是SQLite會在運算或保存時將它們轉換爲上面5種數據類型中的相應類型。

除此之外,SQLite允許把各種類型的數據保存到任何類型字段中,開發者可以不用管理聲明該字段所使用的數據類型。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章