FMDB框架自己下載
1. .h文件暴露數據庫先關操作方法
+(FMdbModel*)sharedFMdbModel;
/**數據插入*/
- (void)insertSelectModel:(TakeModel*)model andType:(NSString*)type;
/**數據查找*/
- (BOOL)isExistSelectModel:(NSString*)categoryid andType:(NSString*)type;
/**數據刪除*/
- (void)deleteDataName:(NSString*)categoryid;
/**數據顯示*/
- (NSArray*)showAllSelectModel;
/** 清空數據 */
- (void)clearAllData;
2. .m文件中相關方法的實現
包含頭文件#import "FMDatabase.h"
@implementation FMdbModel
{
FMDatabase * fmdb;
}
+ (FMdbModel*)sharedFMdbModel{
// 單例創建數據庫
static FMdbModel * fmdbModel = nil;
if (fmdbModel == nil) {
fmdbModel = [[FMdbModel alloc] init];
}
return fmdbModel;
}
-(id)init{
self = [super init];
if (self) {
NSString * path = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/VcReadInfo.db"];
fmdb = [[FMDatabase alloc] initWithPath:path];
BOOL isOpen = [fmdb open];
if (isOpen) {
NSLog(@"數據庫打開成功");
// 創建表格
NSString * sql = @"create table if not exists VCTable(vcID varchar(256),iconUrl varchar(256),desc varchar(256),name varchar(256),adUrl varchar(256),isleaf varchar(256),VCType varchar(256))";
BOOL isSuccess = [fmdb executeUpdate:sql];
if (isSuccess) {
NSLog(@"表格創建成功");
}else{
NSLog(@"表格創建失敗");
}
}else{
NSLog(@"數據庫打開失敗:%@",fmdb.lastErrorMessage);
}
}
[fmdb close];
return self;
}
// 插入數據
- (void)insertSelectModel:(TakeModel *)model andType:(NSString*)type{
if (![fmdb open]) {
NSLog(@"插入數據時打開數據庫失敗");
}
NSString * sql = @"insert into VCTable (vcID,iconUrl,desc,name,adUrl,isleaf,VCType) values (?,?,?,?,?,?,?)";
NSString * name = model.name;
NSString * vcID = [NSString stringWithFormat:@"%@",model.categoryID];
NSString * iconUrl = model.iconURL;
NSString * desc = model.desc;
NSString * adUrl = model.adImageURL;
NSString * isleaf = model.leaf;
BOOL isSuccess = [fmdb executeUpdate:sql,vcID,iconUrl,desc,name,adUrl,isleaf,type];
if (isSuccess) {
NSLog(@"數據插入成功");
}else{
NSLog(@"數據插入失敗%@",fmdb.lastErrorMessage);
}
[fmdb close];
}
// 數據是否存在
- (BOOL)isExistSelectModel:(NSString *)categoryid andType:(NSString*)type{
if (![fmdb open]) {
NSLog(@"判斷數據是否存在時打開數據庫失敗");
}
NSString * sql = @"select * from VCTable where vcID = ? and VCType = ?";
FMResultSet * result = [fmdb executeQuery:sql,categoryid,type];
if ([result next]) {
[fmdb close];
return YES;
}else{
[fmdb close];
return NO;
}
}
//數據刪除
- (void)deleteDataName:(NSString *)categoryid{
if (![fmdb open]) {
NSLog(@"刪除數據時打開數據庫失敗");
}
NSString * sql = @"delete from VCTable where vcID = ?";
BOOL isSuccess = [fmdb executeUpdate:sql,categoryid];
if (isSuccess) {
NSLog(@"數據刪除成功");
}else{
NSLog(@"數據刪除失敗%@",fmdb.lastErrorMessage);
}
[fmdb close];
}
// 數據顯示
- (NSArray*)showAllSelectModel{
if (![fmdb open]) {
NSLog(@"顯示數據時打開數據庫失敗");
}
NSString * sql = @"select * from VCTable";
FMResultSet * result = [fmdb executeQuery:sql];
NSMutableArray * arr = [[NSMutableArray alloc] init];
while ([result next]) {
TakeModel * model = [[TakeModel alloc] init];
model.name = [result stringForColumn:@"name"];
model.categoryID = [NSNumber numberWithInt:[[result stringForColumn:@"vcID"] intValue]];
model.desc = [result stringForColumn:@"desc"];
model.iconURL = [result stringForColumn:@"iconUrl"];
model.selectType = [result stringForColumn:@"VCType"];
model.adImageURL = [result stringForColumn:@"adUrl"];
model.leaf = [result stringForColumn:@"isleaf"];
[arr addObject:model];
}
[fmdb close];
return arr;
}
// 清空數據
- (void)clearAllData{
if (![fmdb open]) {
NSLog(@"清空數據時打開數據庫失敗");
}
NSString * sql = @"delete from VCTable";
BOOL isSuccess = [fmdb executeUpdate:sql];
if (isSuccess) {
NSLog(@"數據清空成功");
}else{
NSLog(@"數據清空失敗%@",fmdb.lastErrorMessage);
}
[fmdb close];
}