Sqlite是ios數據存儲的一個重要手段,今天我們就一塊來看一下,怎樣使用sqlite將數據存儲到沙盒中去。 第一步:導入一個框架libsqlite3.0.dylib 選中TARGETS在General中的Linked Frameworks and Libraries選項中點擊‘+’添加 第二步:
Sqlite是ios數據存儲的一個重要手段,今天我們就一塊來看一下,怎樣使用sqlite將數據存儲到沙盒中去。
第一步:導入一個框架libsqlite3.0.dylib
選中TARGETS在General中的Linked Frameworks and Libraries選項中點擊‘+’添加
第二步:代碼部分
1.找到沙盒中的路徑
NSArray *path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentPath = [path objectAtIndex:0]; NSString *dbPath = [documentPath stringByAppendingPathComponent:@"sqlite.db"];
2.創建sqlite對象,並執行打開操作
sqlite3 *db; //打開資料庫 int res = sqlite3_open(dbPath.UTF8String, &db);
3.創建表
NSString *sql = @"create table if not exists 'student' ('id' integer primary key autoincrement,'studentname' varchar)"; int sqlRes = sqlite3_exec(db, sql.UTF8String, NULL, NULL, NULL); if (sqlRes == SQLITE_OK) { NSLog(@"create table ok"); }
4.向表中插入數據
//增 NSString *sql1 = @"insert into student (studentname) values ('小帳')"; int sql1Res = sqlite3_exec(db, sql1.UTF8String, NULL, NULL, NULL); if (sql1Res == SQLITE_OK) { NSLog(@"insert ok"); }
5.從表中刪除數據
NSString *deletesql = @"delete from student where id = 3"; int deleres = sqlite3_exec(db, deletesql.UTF8String, NULL, NULL, NULL); if (deleres == SQLITE_OK) { NSLog(@"delete is ok"); }
6.修改表中的數據
//修改 NSString *updateSql = @"update student set studentname = 'wangling' where id = 4"; int updateres = sqlite3_exec(db, updateSql.UTF8String, NULL, NULL, NULL); if (updateres == SQLITE_OK) { NSLog(@"update is ok"); }
7.查詢數據
查詢數據和,增刪改都有所不同,我們需要首先創建sqlite_stmt對象,用來存放我們查詢的數據流(二進位),然後使用sqlite3_prepare_v2函數準備,通過sqlite3_bind_添加查詢參數最後獲取數據,最後關閉sqlite_stmt對象。
//查 sqlite3_stmt *stmt; NSString *selectSql = @"select * from student where id = ?"; if (sqlite3_prepare_v2(db, selectSql.UTF8String, -1, &stmt, nil) == SQLITE_OK) { sqlite3_bind_int(stmt, 1, 4); while (sqlite3_step(stmt) == SQLITE_ROW) { int identity = sqlite3_column_int(stmt, 0); NSLog(@"%d",identity); char * name= (char *)sqlite3_column_text(stmt, 1); NSLog(@"%@",[NSString stringWithUTF8String:name]); } if (stmt) { sqlite3_finalize(stmt); }
8.關閉資料庫sqlite對象
if (db) { sqlite3_close(db); }
作者:傑瑞教育
出處:http://www.cnblogs.com/jerehedu/
版權聲明:本文版權歸煙台傑瑞教育科技有限公司和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
技術咨詢: