目錄(?)[+]
iOS sqlite數據庫操作。步驟是:
先加入sqlite開發庫libsqlite3.dylib,
新建或打開數據庫,
創建數據表,
插入數據,
查詢數據并打印

sqlite3 *db, 數據庫句柄,跟文件句柄FILE很類似
sqlite3_stmt *stmt, 這個相當于ODBC的Command對象,用于保存編譯好的SQL語句sqlite3_open(), 打開數據庫,沒有數據庫時創建。sqlite3_exec(), 執行非查詢的sql語句Sqlite3_step(), 在調用sqlite3_PRepare后,使用這個函數在記錄集中移動。Sqlite3_close(), 關閉數據庫文件還有一系列的函數,用于從記錄集字段中獲取數據,如sqlite3_column_text(), 取text類型的數據。sqlite3_column_blob(),取blob類型的數據sqlite3_column_int(), 取int類型的數據
viewController.h頭文件添加一個成員變量,并包含頭文件sqlite3.h
[cpp] view plain copy#import <UIKit/UIKit.h> #import <sqlite3.h> @interface ViewController : UIViewController { sqlite3 *db; } @end在.m文件 定義宏,方面后面使用
[cpp] view plain copy#define DBNAME @"personinfo.sqlite" #define NAME @"name" #define AGE @"age" #define ADDRESS @"address" #define TABLENAME @"PERSONINFO" [cpp] view plain copyNSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documents = [paths objectAtIndex:0]; NSString *database_path = [documents stringByAppendingPathComponent:DBNAME]; if (sqlite3_open([database_path UTF8String], &db) != SQLITE_OK) { sqlite3_close(db); NSLog(@"數據庫打開失敗"); }sqlite3_open,如果數據不存在,則創建。運行。這是在沙盒目錄下能看到數據庫文件(如何打開模擬器沙盒目錄請參考:iOS學習之iOS沙盒(sandbox)機制和文件操作(一))

創建一個獨立的執行sql語句的方法,傳入sql語句,就執行sql語句
[cpp] view plain copy-(void)execSql:(NSString *)sql { char *err; if (sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK) { sqlite3_close(db); NSLog(@"數據庫操作數據失敗!"); } } 創建數據表PERSONINFO的語句[cpp] view plain copyNSString *sqlCreateTable = @"CREATE TABLE IF NOT EXISTS PERSONINFO (ID INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, address TEXT)"; [self execSql:sqlCreateTable]; 運行程序,數據表創建了。怎么知道數據表創建了呢?我們用火狐的Sqlite Manager插件工具打開數據庫文件看看。可以在火狐瀏覽器里安裝這個插件。打開
四個字段都出現是表中了。

例子代碼:http://download.csdn.net/detail/totogo2010/4400911
新聞熱點
疑難解答