sqlite3資料庫操作
在iOS中使用SQLite3首先要新增庫檔案libsqlite3.dylib並引入標頭檔案
1、開啟資料庫sqlite3_open(<#const char *filename#>, <#sqlite3 **ppDb#>)
(1)作用:把一個檔名稱傳遞給他,它會自動檢測這個檔案是否存在,如果不存在的話,會自動建立相應的檔案(這裡為資料庫檔案,剛建立為空)。
(2)引數:它的第一個引數為檔案的名稱(需轉換為C語言的),第二個引數是資料庫的例項,sqlite3 *db;
說明:sqlite3是一種型別,db是資料庫的控制程式碼,就是資料庫的象徵,如果要進行增刪改查,就得操作db這個例項。
(3)返回值:它的返回值為int型的,根據函式的返回值可以知道,開啟資料庫檔案是成功還是失敗,如果返回值是SQLITE_OK則說明成功,否則為失敗。
//設定資料庫路徑
NSString *dbPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject] stringByAppendingString:@"/text.sqlite"];
if (sqlite3_open(dbPath.UTF8String, &_db) == SQLITE_OK) {
NSLog(@"開啟資料庫成功");
//開啟資料庫成功後建立一個表
//操作命令的字串
//注意字串的結束處有 ; 號
NSString *newListSQL = @"create table if not exists t_text(id integer primary key autoincrement,name text);";
char *errMsg;
sqlite3_exec(_db, newListSQL.UTF8String, NULL, NULL, &errMsg);
if (errMsg) {
NSLog(@"建表失敗 -- %s",errMsg);
}else{
NSLog(@"建表成功");
}
}else{
NSLog(@"開啟資料庫失敗");
}
//2、增
NSString *addQSL = [NSString stringWithFormat:@"insert into t_text('%@') values('%@');",@"name",@"33"];
char *errMsg;
sqlite3_exec(_db, addQSL.UTF8String, NULL, NULL, &errMsg);
if (errMsg == SQLITE_OK) {
NSLog(@"新增成功!");
}else{
NSLog(@"新增失敗!%s",errMsg);
}
//3、刪
NSString *deleteSQL = [NSString stringWithFormat:@"delete from t_text where id == 2"];
sqlite3_exec(_db, deleteSQL.UTF8String, NULL, NULL, &errMsg);
if (errMsg == SQLITE_OK) {
NSLog(@"刪除成功!");
}else{
NSLog(@"刪除失敗!%s",errMsg);
}
//4、改
NSString * updateSQL = @"update t_text set name = 'hello-world' where id = 1;";
sqlite3_exec(_db, updateSQL.UTF8String, NULL, NULL, &errMsg);
if (errMsg) {
NSLog(@"修改失敗--%s",errMsg);
}else{
NSLog(@"修改成功");
}
//5、查
NSString * searchSQL = @"select * from t_text;";
//查詢的控制程式碼,遊標
sqlite3_stmt * stmt;
if (sqlite3_prepare(_db, searchSQL.UTF8String, -1, &stmt, NULL) == SQLITE_OK) {
//查詢資料
while (sqlite3_step(stmt) == SQLITE_ROW) {
//獲取表資料的內容
//sqlite3_column_text('控制程式碼',欄位索引值)
NSString * name = [NSString stringWithCString:(const char *)sqlite3_column_text(stmt, 1) encoding:NSUTF8StringEncoding];
NSLog(@"name = %@",name);
}
}
相關文章
- 使用sqlite3 模組操作sqlite3資料庫SQLite資料庫
- python sqlite3 資料庫操作PythonSQLite資料庫
- C++ 操作sqlite3資料庫C++SQLite資料庫
- python用sqlite3模組操作sqlite資料庫PythonSQLite資料庫
- Python資料庫模組(sqlite3,SQLite3)Python資料庫SQLite
- Python3資料庫模組(sqlite3,SQLite3)Python資料庫SQLite
- Python標準庫14 資料庫 (sqlite3)Python資料庫SQLite
- SQLite3資料庫檔案結構解析SQLite資料庫
- Python 快速教程(標準庫14):資料庫 (sqlite3)Python資料庫SQLite
- cocos2dx之引入Sqlite3資料庫SQLite資料庫
- 常用操作 / 資料庫操作資料庫
- 資料庫操作資料庫
- 資料庫操作·資料庫
- [Python]_[初級]_[校驗查詢sqlite3資料庫]PythonSQLite資料庫
- 【Falsk 使用資料庫】---- 資料庫基本操作資料庫
- lazarus 開啟 sqlite3資料SQLite
- MongoDB 資料庫操作MongoDB資料庫
- mongodb資料庫操作MongoDB資料庫
- MySQL 資料庫操作MySql資料庫
- laravel 資料庫操作Laravel資料庫
- django資料庫操作Django資料庫
- Ecos 資料庫操作資料庫
- 資料庫基本操作資料庫
- gorm操作sqlite3,高併發讀寫如何避免鎖庫?GoORMSQLite
- 值得白嫖的資料庫常用操作語句彙總(資料庫、資料表、資料操作)資料庫
- 資料庫——基礎(資料庫操作,表格操作)——增加高階查詢資料庫
- Mysql資料庫操作命令MySql資料庫
- Laravel 資料庫基本操作Laravel資料庫
- django操作多資料庫Django資料庫
- Go之資料庫操作Go資料庫
- PHP操作MySQL資料庫PHPMySql資料庫
- postgresql 資料庫基本操作SQL資料庫
- MySQL資料庫常用操作MySql資料庫
- 【Java】操作Sqlite資料庫JavaSQLite資料庫
- 【Java】操作mysql資料庫JavaMySql資料庫
- 資料庫操作語句資料庫
- 資料庫操作指令(一)資料庫
- MySQL資料庫基本操作MySql資料庫