FMDB的下載地址 (https://github.com/ccgus/fmdb) 話不多說首先將這個 庫加進來,在將加進來,OK 准備工作就緒上代碼。
#import "DDViewController.h"
#import "FMDB.h"
@interface DDViewController ()
{
FMDatabase *db;
}
@end
@implementation DDViewController
/**
* 要先做要有個位置去存放數據庫 ios下Document路徑,Document為ios中可讀寫的文件夾並且要創建一個數據庫的列表
*/
- (void)viewDidLoad
{
[super viewDidLoad];
// db = [FMDatabase new];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0];
//dbPath: 數據庫路徑,在Document中。
NSString *dbPath = [documentDirectory stringByAppendingPathComponent:@"Test.db"];
//創建數據庫實例 db 這裡說明下:如果路徑中不存在"Test.db"的文件,sqlite會自動創建"Test.db"
db= [FMDatabase databaseWithPath:dbPath] ;
if (![db open]) {
NSLog(@"Could not open db.");
return ;
}
//為數據庫設置緩存,提高查詢效率
[db setShouldCacheStatements:YES];
// 1.創建一個表 表的名字 為User
[self creatTable];
//2.向表中添加數據
[self insertData:@"草帽" age:23];
//3.查看結果
[self ResultSet];
}
//創建一個表
-(void)creatTable
{
//創建表的時候 最好判斷下自己的之前的工作有麼有做好
if (!db) {
NSLog(@"數據庫不存在");
}
if (![db open]) {
[db open];
}
//判斷是否存在這張名字為User的表 如果沒有 創建
if (![db tableExists:@"User"]) {
//創建一個名為User的表,有兩個字段分別為string類型的Name,integer類型的 Age
[db executeUpdate:@"CREATE TABLE User (Name text,Age integer)"];
// [self insertData:@"草帽" age:24];
}
}
//插入數據
-(void)insertData:(NSString *)name age:(int)age
{
//插入數據使用OC中的類型 text對應為NSString integer對應為int的整型
[db executeUpdate:@"INSERT INTO User (Name,Age) VALUES (?,?)",name,[NSNumber numberWithInt:age]];
}
//查詢結果
-(void)ResultSet
{
//返回數據庫中第一條滿足條件的結果
NSString *aa=[db stringForQuery:@"SELECT Name FROM User WHERE Age = ?",@"20"];
NSLog(@"aa is %@",aa);
FMResultSet *rs=[db executeQuery:@"SELECT * FROM User"];
// rs=[db executeQuery:@"SELECT * FROM User WHERE Age = ?",@"23"];
while ([rs next]){
NSLog(@"%@ %@",[rs stringForColumn:@"Name"],[rs stringForColumn:@"Age"]);
}
[rs close];
}
//修改表內容
-(void)Modify
{
[db executeUpdate:@"UPDATE User SET Name = ? WHERE Name = ? ",@"李四",@"張三"];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end