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];
}