iOS 存储之FMDB

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>0?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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值