標籤:
1.Sqlite3資料庫的建立順序:
- 先使用C語言函數 [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] 來獲得資料庫的Document目錄,再通過 stringByAppendingPathComponent 方法來拼接出資料庫檔案目錄;
- 建立一個sqlite3的指標對象,並且賦予NULL值;
- 使用C語言函數 sqlite3_open(資料庫目錄.UTF8String, &sqlite3指標對象);
- 通過使用if語句判斷開啟資料庫函數的傳回值是否為 SQLITE_OK 來判斷是否開啟成功;
2.Sqlite3資料庫表的建立順序:
- 先建立 const char *sql,指標對象用來存放sql語句;
- 建立 char *errorMesg = NULL;
- 使用C語言函數 sqlite3_exec(sqlite3指標對象, sql語句, NULL, NULL, &errorMesg) 方法來執行sql語句,同樣有一個int類型的傳回值,可以和建立資料庫第四步一樣來判斷,如果失敗可以使用%s直接列印errorMesg來判斷成功或者失敗;
3.Sqlite3資料庫的update以及delete操作順序和建立表的差不多,只需要更改下語句就行了。
4.Sqlite3資料庫的查詢語句順序比較複雜,如下:
- 定義一個 const char *sql 語句;
- 定義一個 sqlite3_stmt 指標對象;
- 使用 sqlite3_prepare_v2(sqlite指標對象, sql語句, -1(資料的長度,-1則會自動計算), stmt指標對象地址, NULL) 來檢測sql語句的合法性;
- 通過傳回值判斷是否正確;
- 如果正確,則使用 while (sqlite_step(stmt) == SQLITE_ROW) 判斷是否查到一行;
- 在迴圈的時候使用 sqlite_column_資料類型(結果指標對象, 列號) C語言函數來獲得;
5.在定義查詢語句的時候應該把等號右邊的字串變為?,然後在執行前使用 sqlite_bind_資料類型(結果集指標對象, 問號的索引(從1開始), 要替換的資料, -1(資料的長度,-1則會自動計算), NULL(回呼函數));
上個禮拜一直在做小練習,做了一個禮拜的介面,也遇到了一些問題,同時也解決了一部分,雖然解決方式有點取巧,但是我覺得先解決問題再考慮最佳化才是開發的最好方式。這禮拜邊學邊開始實現練習的邏輯部分。
IOS學習筆記 ---- 15/09/14