iOS資料庫SQLite基本操作

來源:互聯網
上載者:User

標籤:

資料庫操作幾點建議:

  1. 注意sql執行語句的字串的拼字。(一定要注意拼字,深受其害  T_T  )

  2. Obj-C中SQLite常用函數。

    (沒幾個,sqlite3_open,sqlite3_close,sqlite3_exec,sqlite3_perpare_v2,sqlite3_step,sqlite3_column_*,……)(外加兩個對象:sqlite,sqlite_stmt)

  3. SQLite文法。(一般的資料庫操作都一樣)

  4. 如果做大一點的項目的話,資料庫操作還是儘可能的封裝吧。

  5. 善用搜尋。(沒少走彎路)

 

廢話不多說,代碼加註釋:

    //資料庫路徑

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDir = [paths objectAtIndex:0];

    NSString *filePath = [documentsDir stringByAppendingPathComponent:@"test3.sqlite"];

 

    //開啟資料庫

    if (sqlite3_open([filePath UTF8String], &database) != SQLITE_OK)

    {

        NSLog(@"開啟資料庫失敗");

    }

 

    //資料執行操作封裝,不想封裝直接用sqlite3_exec函數

    //sqlite3_exec返回枚舉值(整形),可以執行建立表,插入,刪除,更新等操作

    - (int)execSql:(NSString*)sql

    {

        char *errmsg;

        if (sqlite3_exec(database, [sql UTF8String], nil, nil, &errmsg) != SQLITE_OK) {

            NSLog(@"資料庫操作失敗!");

            NSLog(@"%s", errmsg);

            return SQLITE_ERROR;

        }

        return SQLITE_OK;

    }

    

    //調用封裝後的方法建立資料庫

    NSString *createTableHistory = @"create table if not exists atable(id integer primary key autoincrement, acolumn nvarchar(20) not null);";

    [self execSql:createTableHistory];

 

    //資料庫查詢,(待封裝)

    thing = [[NSMutableArray alloc] init];

    NSString *selectSql = @"select * from atable";

    sqlite3_stmt *statement;

    if (sqlite3_prepare_v2(database, [selectSql UTF8String], -1, &statement, nil) == SQLITE_OK) {

        while (sqlite3_step(statement) == SQLITE_ROW) {

            //nvarchar類型查詢出來是char*,賦值給NSString的話需要轉換,

            //注意,這裡是第1列,列數是從第0列開始的

            //如果要查詢多個欄位,如學生資訊,可以把學生封裝成一個類,然後把該類的案例一個個放到數組裡

            [thing addObject:[NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 1)]];

        }

    }

    else

    {

        NSLog(@"資料查詢失敗!");

    }

 

    //最後當頁面關閉,或程式關閉記得關閉資料庫

    sqlite3_close(database);

iOS資料庫SQLite基本操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.