1.在Github上下載下傳FMDB,導入fmdb,删除裡面的plist檔案
2.導入庫libsqlite3.tbd
3.包含頭檔案#import “FMDB.h”
寫一個資料庫工具類,包含資料的增删改查
另寫一個模型類,存放要存入資料庫的資料模型
4.下面貼出我的資料庫工具類
#import "DBManager.h"
#import "FMDB.h"
@implementation DBManager{
FMDatabase *db;
NSString *path;
}
+ (DBManager *)shareManager{
static DBManager *dB = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
if (dB == nil) {
dB = [[DBManager alloc] init];
}
});
return dB;
}
- (id)init{
self = [super init];
if (self) {
NSString *dbPath = [NSHomeDirectory() stringByAppendingString:@"/Documents/appa.db"];
NSLog(@"列印資料庫路徑:%@",dbPath);
path = dbPath;
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:path]){
db = [[FMDatabase alloc] initWithPath:path];
if ([db open]) {
NSLog(@"打開資料庫成功");
NSString *sql = @"CREATE TABLE IF NOT EXISTS t_student (sid text unique NOT NULL, name text NOT NULL, age text NOT NULL)";
BOOL isSuccess = [db executeUpdate:sql];
if (isSuccess) {
NSLog(@"建立表成功");
}else{
NSLog(@"建立表失敗");
}
[db close];
}else{
NSLog(@"請打開資料庫");
}
}
}
return self;
}
#pragma mark - 資料庫操作
//查詢
- (BOOL)isExistsDataWithModel:(Student *)model{
db = [FMDatabase databaseWithPath:path];
NSMutableArray *array = [NSMutableArray array];
if ([db open]){
NSString *sql = @"select sid from t_student where sid = ?";
FMResultSet *set = [db executeQuery:sql,model.sid];
while ([set next]) {
[array addObject:model.sid];
}
[db close];
}
return array.count>?YES:NO;
}
//插入
- (void)insertDataWithModel:(Student *)model{
db = [FMDatabase databaseWithPath:path];
if ([db open]){
NSString *sql = @"insert into t_student (sid,name,age) values (?,?,?)";
BOOL isSuccess = [db executeUpdate:sql,model.sid,model.name,model.age,nil];
if (isSuccess) {
NSLog(@"插入成功");
}else{
NSLog(@"插入失敗");
}
[db close];
}
}
//删除
- (BOOL)deleteDataWithModel:(Student *)model{
db = [FMDatabase databaseWithPath:path];
if ([db open]){
NSString *sql = @"delete from t_student where sid = ?";
BOOL isSuccess = [db executeUpdate:sql,model.sid];
if (isSuccess) {
NSLog(@"删除成功");
}else{
NSLog(@"删除失敗");
}
[db close];
}
return YES;
}
//修改
- (BOOL)changeDataWithModel:(Student *)model newStr:(NSString *)str{
db = [FMDatabase databaseWithPath:path];
if ([db open]){
NSString *sql = @"update t_student set name = ? where name = ?";
BOOL isSuccess = [db executeUpdate:sql,str,model.name];
if (isSuccess) {
NSLog(@"修改成功");
}else{
NSLog(@"修改失敗");
}
[db close];
}
return YES;
}
//傳回所有資料
- (NSArray *)allData{
//裝資料模型
NSMutableArray *array = [NSMutableArray array];
db = [FMDatabase databaseWithPath:path];
if ([db open]){
NSString *sql = @"select * from t_student";
FMResultSet *res = [db executeQuery:sql];
while ([res next]) {
Student *model = [[Student alloc] init];
model.sid = [res stringForColumn:@"sid"];
model.name = [res stringForColumn:@"name"];
model.age = [res stringForColumn:@"age"];
[array addObject:model];
}
[db close];
}
return array;
}