SQLite創建表並加入數據


- (void)viewDidLoad {
    [super viewDidLoad];
    //創建表
    [self creatTable];
    //插入數據
    [self insertTable];
}

// -----------------------創建一個表--------------------
- (void)creatTable
{
// 1.創建一個數據庫對象
    sqlite3 *sqlite3 = nil;
    
// 2.數據庫的路徑
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/mySqlite.db"];
    
// 3.打開數據庫 (通過指定路徑打開數據庫文件,假設沒有就創建)
    int result = sqlite3_open([path UTF8String], &sqlite3);
    if (result != SQLITE_OK) {
        NSLog(@"數據庫打開失敗!");
        return;
    }
    
// 4.創建sql語句
    NSString *sql = @"CREATE TABLE Students (id integer PRIMARY KEY,name text)";
    
// 5.運行SQL語句
    char *error = NULL;
    result = sqlite3_exec(sqlite3, [sql UTF8String], NULL, NULL, &error);
    if (result != SQLITE_OK) {
        NSLog(@"運行sql語句失敗!");
        // 6.關閉數據庫
        sqlite3_close(sqlite3);
        return;
    }
// 6.關閉數據庫
    sqlite3_close(sqlite3);
}

// -------------------------插入數據------------------------
- (void)insertTable
{
// 1.創建一個數據庫對象
    sqlite3 *sqlite3 = nil;
    
// 2.數據庫的路徑
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/mySqlite.db"];
    
// 3.打開數據庫 (通過指定路徑打開數據庫文件。假設沒有就創建)
    int result = sqlite3_open([path UTF8String], &sqlite3);
    if (result != SQLITE_OK) {
        NSLog(@"數據庫打開失敗!

"); return; } // 4.創建sql語句 // insert into students(id,name) values('123456','李斯') NSString *sql = @"insert into students(id,name) values(?,?)"; // 5.編譯sql語句 // 創建一個數據句柄對象 sqlite3_stmt *stmt = nil; result = sqlite3_prepare_v2(sqlite3, [sql UTF8String], -1, &stmt, nil); if (result != SQLITE_OK) { NSLog(@"編譯失敗"); // 關閉數據庫 sqlite3_close(sqlite3); return; } // 6.綁定數據到數據句柄里面 sqlite3_bind_int(stmt, 1, 123457); sqlite3_bind_text(stmt, 2, "張三", -1, nil); // 7.運行數據句柄的操作 result = sqlite3_step(stmt); if (result == SQLITE_ERROR || result == SQLITE_MISUSE) { NSLog(@"插入失敗"); // 關閉數據句柄 sqlite3_finalize(stmt); // 關閉數據庫 sqlite3_close(sqlite3); return ; } // 8.運行成功 NSLog(@"插入成功"); // 關閉數據句柄 sqlite3_finalize(stmt); // 關閉數據庫 sqlite3_close(sqlite3); }



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM