ios FMDB第三方庫操作SQLite數據庫

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章