IOS中資料庫的基本功能實現

2021-06-22 16:54:22 字數 3982 閱讀 2252

無論在學習哪一門程式語言資料庫都是必不可少的,當然了在ios學習過程中,也不例外,在前我再部落格寫過plist和歸檔都是資料儲存的不錯選擇,相比較它們,資料庫的特點就是在設計大容量,內容複雜資料關聯性強的程式中,發揮的作用更大。本章部落格是我針對ios初學者寫的一些資料庫內資訊增刪改除的簡單實現,以及每一步資料庫使用的注意事項,希望可以幫助到你們。

建立乙個繼承於nsobject的類 :  databasehandler

databasehandler.h中

//作為乙個資料處理的類

,其物件最好為乙個單例

+ (databasehandler *)shareinstance; //

開啟資料庫

- (void)opendb; //

關閉資料庫

- (void)closedb; //

建立表

- (bool)creattable;

資料庫的增刪改查

//插入資料

- (bool)inserttablewithname:(nsstring *)name age:(int)age number:(int)number; //

刪除資料

- (bool)deletetablewithname:(nsstring *)name; //

更新資料

- (bool)updatename:(nsstring *)scorcename toname:(nsstring *)targetname; //

查詢資料

- (nsarray *)selecttable;

databasehandler.m

+ (databasehandler *)shareinstance );

return handler;

} #pragma mark -

#pragma mark -拼接

- (void)opendb

else }

- (void

)closedb

else }

#pragma mark - 

#pragma mark - 建立表

- (bool

)createtable

return

no;

/* **************注意事項********************/ //

資料庫的替身

緩衝地帶

確保更新完成之後會自動的更新資料庫

//作用

:儲存所有對資料庫的修改

sqlite3_stmt * stmt = nil;

//檢查

sql語句

,為執行

sql語句做的準備 //

引數1:

資料庫指標

//引數

2:sql

語句不需要

@ 直接雙引號裡面填寫

//引數

3:限制

sql語句的長度

不想限制長度寫

-1//

引數4:

資料庫替身

stmt

的位址int result =sqlite3_prepare(dbpoint, "create table student (name text,ageint,number int primary key)", -1, &stmt, nil);

//3.

判斷檢查的結果

if (result == sqlite_ok) }

//如果檢查

sql語句失敗,將

stmt

指標釋放掉

sqlite3_finalize(stmt);

returnno;

} #pragma mark -

#pragma mark - 

插入- (bool)inserttablewithname:(nsstring *)name age:(int)age number:(int)number

returnno;

sqlite3_stmt * stmt = nil; //

注意null

int result =sqlite3_prepare(dbpoint, "insert into student values(?,?,?)", -1, &stmt, null); //

給問號? 

繫結引數和資料

//引數

1 : 

替身//

引數2 : 

給哪個位置的?繫結

第乙個元素為1

//引數

3: 提供的資料

sqlite3_bind_text(stmt, 1, [name utf8string], -1, null);

sqlite3_bind_int

(stmt, 

2, age);

sqlite3_bind_int(stmt, 3, number);

//sql

檢查無誤

if (result == sqlite_ok) }

sqlite3_finalize(stmt);

return

no; }

#pragma mark-

更新- (bool)updatename:(nsstring *)scorcename toname:(nsstring *)targetname

return

no;

//替身

sqlite3_stmt * stmt = nil; //

注意null

int result =sqlite3_prepare(dbpoint, "update student set name = ? wherename = ?", -1, &stmt, null); //

給問號? 

繫結引數和資料

//引數

1 : 

替身//

引數2 : 

給哪個位置的?繫結

第乙個元素為1

//引數

3: 提供的資料

sqlite3_bind_text(stmt, 1, [scorcename utf8string], -1, null)

sqlite3_bind_text(stmt, 2, [targetname utf8string], -1, null);

//sql

檢查無誤

if (result == sqlite_ok) }

sqlite3_finalize(stmt);

return

no; }

#pragma mark-

刪除改進

除了查詢之外的方法都可以簡化

- (bool)deletetablewithname:(nsstring *)name

return

no;

#pragma mark-

原來的複雜演算法

sqlite3_stmt * stmt = nil;

int result =sqlite3_prepare(dbpoint, "delete from student where name =?", -1, &stmt, null);

sqlite3_bind_text(stmt, 1, [name utf8string ], -1, null);

//sql

檢查無誤

if (result == sqlite_ok) }

sqlite3_finalize(stmt);

return

no; }

#pragma mark-

查詢顯示所有的

- (nsarray *)selecttable

sqlite3_finalize(stmt);

return arr; }

sqlite3_finalize(stmt);

return [nsmutablearray

array];     }

ASP基本功能實現

修改資料庫的記錄 若要修改資料庫的記錄,首先使用ado鏈結到access資料庫ntopsamp.mdb,下sql指令尋找待修改的記錄,將結果傳回到rs1的recordset當中,asp程式碼如下 set rs server.createobject adodb.recordset sql selec...

Servlet基本功能實現

生命週期 3.0版本以上的支援,版本號就是建立web專案的版本 webservlet註解 可以定義多個路徑,陣列形式 學習servlet之前應該了解下請求頭的知識 request可以用來獲取請求行的各種引數,知道方法即可,這些方法要寫在servlet的doget方法中 域物件,乙個有作用範圍的物件 ...

導航資料的基本功能

背景點 landmark 總是顯示在介面中,使用者不能控制是否顯示 icon 使用者可以通過選單控制是否顯示在介面中的點 背景線鐵路 行政區劃線 單線河背景面 江 河 湖 海 綠地道路種別 城市間高速公路 城市內高速路 國道 省道 縣道 鄉鎮村道 其它道路 渡口聯絡線 通行方向 雙向通行 單向通行 ...