- (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);
}
