目錄:
一、sqlite3常用函式
二、將sqlite3整合到專案,實現増刪改查
三、封裝dbmanager
四、demo
(1)sqlite3_open:
用來建立和開啟資料庫檔案,接收兩個引數,第乙個是資料庫的名字,第二個是資料庫的控制代碼。如果資料庫檔案不存在,將首先新建它,然後再開啟它,否則只是開啟它。
(2)sqlite3_prepare_v2:
使用格式化的字串來獲得sql準備語句(prepared statement),然後轉化為可被sqlite3識別的執行語句。(實際上這個函式並不執行這個sql語句)
(3)sqlite3_step:
這個函式執行上乙個函式呼叫建立的準備語句,這個語句執行到結果的第一行可用的位置,再次呼叫
sqlite3_setp(),會
繼續前進到結果的第二行
。當執行插入、更新、刪除操作時會被呼叫一次,當執行取回資料時可以執行多次。這個函式不能在
sqlite3_preprare_v2之前呼叫。
(4)sqlite3_column_count:
返回表的列數
(5)sqlite3_column_text
: 以text的格式返回列的內容(實際上是c的char*型別)。它接收兩個引數,sqlite語句和列的索引。
(6)sqlite3_column_name
:返回列的名字,引數和上乙個函式一樣
(7)sqlite3_changes:
返回執行語句後受影響的行數
(8)sqlite3_last_insert_rowid:
返回最後插入的行的id
(9)sqlite3_errmsg:
返回sqlite錯誤描述
(10)
sqlite3_finalize:
從記憶體刪除之前sqlite3_prepare_v2函式建立的準備語句
(11)
sqlite3_close
: 關閉資料庫連線,在結束任何資料庫資料修改後呼叫,它將釋放其儲存的系統資源。
1.首先需要將sqlite3的庫新增到工程,輸入sqlite,從推薦選項中選擇libsqlite3.dylib ,如下圖。
2.匯入sqlite3的標頭檔案 :#import
3.定義巨集,方便後面使用,並
宣告乙個sqlite3 控制代碼
#define dbname @"mydb.sqlite"
#define tablename @"personinfo"
#define name @"name"
@inte***ce viewcontroller ()
3.建立和開啟資料庫檔案
4. 新建乙個sql語句運算元據庫的函式nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);
nsstring *documents = [paths objectatindex:0];
if (sqlite3_open([database_path utf8string], &db)!= sqlite_ok)
5.建立資料表,表名為2中的巨集定義personinfo-(void)execsql:(nsstring *)sql
}
6.插入一條名字為張三,年齡22歲的記錄nsstring *sqlcreatetable = @"create table if not exists personinfo(peopleinfoid integer primary key, firstname text, lastname text, age integer);";
[self execsql:sqlcreatetable];
7.查詢所有記錄nsstring *sql = [nsstring stringwithformat:@"insert into peopleinfo values(null, '%@', '%@', %d)", @「張」,@「三」,22];
[self execsql:sql];
(1)nsstring *sqlquery = @"select * from personinfo";
sqlite3_stmt * statement;
if (sqlite3_prepare_v2(db, [sqlquery utf8string], -1, &statement, nil) == sqlite_ok) } sqlite3_close(db);
新建乙個新增乙個dbmanager類: 選擇file > new > file…,選擇 cocoa touch class,單擊下一步,按如圖所示操作。
(2).h檔案
#import @inte***ce dbmanager : nsobject(3).m檔案@property (nonatomic, strong) nsmutablearray *arrcolumnnames;//儲存列名
@property (nonatomic) int affectedrows;//記錄被改變的行數
@property (nonatomic) long long lastinsertedrowid;//記錄最後插入行的id
-(nsarray *)loaddatafromdb:(nsstring *)query;//查詢
-(void)executequery:(nsstring *)query;//插入、更新、刪除
-(instancetype)initwithdatabasefilename:(nsstring *)dbfilename;//初始化方法
-(bool)createtablewithsql:(const char *)sql_stmt;//新建表
@end
#import "dbmanager.h"
#import //匯入sqlite3的標頭檔案
@inte***ce dbmanager()
@property (nonatomic, strong) nsstring *documentsdirectory;
@property (nonatomic, strong) nsstring *databasefilename;
@property (nonatomic, strong) nsmutablearray *arrresults;
@end
@implementation dbmanager
-(instancetype)initwithdatabasefilename:(nsstring *)dbfilename
return self;
}#pragma mark 建表
-(bool)createtablewithsql:(const char *)sql_stmt
sqlite3_close(database);
}else
}return issuccess;
}#pragma mark 執行sql語句
-(void)runquery:(const char *)query isqueryexecutable:(bool)queryexecutable
self.arrresults = [[nsmutablearray alloc] init];
//初始化儲存列名的array
if (self.arrcolumnnames != nil)
self.arrcolumnnames = [[nsmutablearray alloc] init];
//開啟資料庫
bool opendatabaseresult = sqlite3_open([databasepath utf8string], &sqlite3database);
if(opendatabaseresult == sqlite_ok) }}
else
else }}
else
// 釋放記憶體
sqlite3_finalize(compiledstatement);
}// 關閉資料庫
iOS SQLite3使用簡介
摘要 本文介紹ios中sqlite3的使用,包括插入資料 查詢資料等操作,並提供簡單的示例 供參考。一 在firefox中開啟sqlite3 如果沒有,選擇工具 附加元件,新增即可 新建sqlite3資料庫contacts,建立乙個members表,字段 id,integer,主鍵,自增 name,...
ios sqlite3簡單使用
1.匯入sqlite3系統標頭檔案 import2.建立變數sqlite3 3.定義儲存路徑 首先自定義乙個方法,返回我們當前應用程式沙盒目錄 也就是說希望資料庫儲存在 nsstring datafilepath4.建立資料庫 之後在指定位置建立或開啟資料庫 void creatdatabase n...
ios SQLite3 使用命令
在ios下開發使用sqlite,和在windows下使用有一些差別,這裡簡單介紹一些在ios下使用sqlite3的一些簡單的命令 由建立乙個資料庫的乙個表來說 先指定路徑,這裡指定的路徑是桌面,cd desktop 然後 建立資料庫 sqlite3 date1.db databases 顯示所有資料...