125Deaths重開之SQLite3的應用

2021-08-01 08:59:19 字數 1563 閱讀 2551

實現步驟基本如下:

主要記錄一下將sqlite資料庫從bundle複製到沙盒的過程,以及讀取sqlite資料庫資料病賦值給trapsmodel的過程。

將sqlite資料庫從bundle複製到沙盒:

//獲取沙盒目標路徑  

nsstring *docpath = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes)objectatindex:0];

//獲取沙盒中sqlite資料庫目的地路徑

//獲取bundle中sqlite資料庫的路徑

nsstring *orignfilepath = [[nsbundle mainbundle] pathforresource:@"trapsmodel" oftype:@"sqlite3"];

nsfilemanager *fm = [nsfilemanager defaultmanager];

//如果doc下沒有資料庫,從bundle裡面拷貝到沙盒中

if([fm fileexistsatpath:sqlfilepath] == no) else

}else

讀取sqlite資料庫資料病賦值給trapsmodel:

//獲取沙盒目標路徑  

nsstring *docpath = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes)objectatindex:0];

//獲取沙盒中sqlite資料庫目的地路徑

//建立sqlite資料庫指標

sqlite3 * db;

//開啟資料庫

sqlite3_open([sqlfilepath utf8string], &db);

//定義錯誤字串

char * errmsg;

//定義帶引數查詢的sql語句,由於是用編號來獲取資料,所以本不該用like關鍵字,以免獲取多個資料,但由於現階段只有兩個資料,所以無礙

const

char * selectsql = "select * from trapsmodel where id like ?";

sqlite3_stmt * stmt;

//預編譯sql語句,stmt變數儲存了預編譯結果的指標

int result = sqlite3_prepare_v2(database, selectsql, -1, &stmt, nil);

//如果預編譯成功

if(result == sqlite_ok)

//因為使用預編譯statement執行過sql語句,所以呼叫sqlite3_finalize()函式關閉sqlite3_stmt

sqlite3_finalize(stmt);

}//關閉資料庫

sqlite3_close(db);

爬蟲學習之 sqlite3

sqlite能儲存什麼樣的資料型別 可以儲存空值 整數 浮點數 字串和blob。什麼是blob 是二進位製大物件。例如 zip檔案。什麼是游標 游標是在資料庫中用來移動和執行查詢的物件。sql的全部知識呢?遠不止這些 有乙個很好的初學教程 如果要使用sql必須要匯入sqlite3庫。建立乙個資料庫,...

python之sqlite3使用詳解

如果該資料庫操作不需要返回結果,就直接用conn.execute查詢,根據資料庫事務隔離級別的不同,可能修改資料庫需要conn.commit 如果需要返回查詢結果則用conn.cursor建立游標物件cur,通過cur.execute查詢資料庫,用cur.fetchall cur.fetchone ...

python之sqlite3使用詳解

python sqlite資料庫是一款非常小巧的嵌入式開源資料庫軟體,也就是說沒有獨立的維護程序,所有的維護都來自於程式本身。它使用乙個檔案儲存整個資料庫,操作十分方便。它的最大優點是使用方便,功能相比於其它大型資料庫來說,確實有些差距。但是效能表現上,sqlite並不遜色。麻雀雖小,五臟俱全,sq...