無論在學習哪一門程式語言資料庫都是必不可少的,當然了在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 使用者可以通過選單控制是否顯示在介面中的點 背景線鐵路 行政區劃線 單線河背景面 江 河 湖 海 綠地道路種別 城市間高速公路 城市內高速路 國道 省道 縣道 鄉鎮村道 其它道路 渡口聯絡線 通行方向 雙向通行 單向通行 ...