iOS sqlite3的使用(増刪改查)

2021-07-03 08:26:33 字數 4642 閱讀 7297

目錄:

一、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.建立和開啟資料庫檔案

nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);

nsstring *documents = [paths objectatindex:0];

if (sqlite3_open([database_path utf8string], &db)!= sqlite_ok)

4. 新建乙個sql語句運算元據庫的函式

-(void)execsql:(nsstring *)sql  

}

5.建立資料表,表名為2中的巨集定義personinfo

nsstring *sqlcreatetable = @"create table if not exists personinfo(peopleinfoid integer primary key, firstname text, lastname text, age integer);";  

[self execsql:sqlcreatetable];

6.插入一條名字為張三,年齡22歲的記錄

nsstring *sql = [nsstring stringwithformat:@"insert into peopleinfo values(null, '%@', '%@', %d)", @「張」,@「三」,22]; 

[self execsql:sql];

7.查詢所有記錄

nsstring *sqlquery = @"select * from personinfo";  

sqlite3_stmt * statement;

if (sqlite3_prepare_v2(db, [sqlquery utf8string], -1, &statement, nil) == sqlite_ok) } sqlite3_close(db);

(1)

新建乙個新增乙個dbmanager類: 選擇file > new > file…,選擇 cocoa touch class,單擊下一步,按如圖所示操作。

(2).h檔案

#import @inte***ce dbmanager : nsobject

@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

(3).m檔案

#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 顯示所有資料...