FMDB数据库的简单操作

一直以来对数据库的操作都感觉很麻烦,每次封装FMDB的工具类都是一件让人很头大的事情,在这记录一下它的一些常用操作,很方便实用


首先,是常用的数据库语句

增 INSERT INTO 表名(字段1, 字段2) VALUES(值1, 值2);
删 DELETE FROM 表名 WHERE 字段 = 值
查 SELECT 字段名(*) FROM 表名 WHERE 字段 = 值
改 UPDATE 表名 SET 字段 = 值 WHERE 字段 = 值

然后,创建数据库的名称以及路径

+ (NSString *)getDBPath
{
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"数据库名称.sqlite"];
}

初始化

+ (void)initialize{
    //创建数据库对象
    _db = [FMDatabase databaseWithPath:[self getDBPath]];
    JKLog(@"%@", [self getDBPath]);
    //打开数据库
    if (![_db open]) {
        JKLog(@"打开失败:%@", _db.lastError);
        return;
    }
}

查询并创建表和表中的字段

//创建表 注意添加 IF NOT EXISTS 判断是否表已经存在
    [_db executeUpdate:@"CREATE TABLE IF NOT EXISTS 表名 (id INTEGER NOT NULL, 字段 字段类型, PRIMARY KEY(id));"];
    几种常用的字段类型: TEXT-字符串  INTEGER-数字  blob-Data类型  一般创建的时候都会带一些特定参数,例如时间,日期,版本号等等

查询,是否存在指定的表

//执行查询语句 使用COUNT可以获取满足条件的记录的数量  如果使用COUNT函数,获取时必须使用其别名(AS)来获取 返回YES则存在
    FMResultSet *set = [_db executeQuery:@"SELECT COUNT(*) AS 'count' FROM 表名 WHERE 包含的字段 = ?", 字段的值];

    if ([set next]) {

        return [set intForColumn:@"count"] ? YES : NO;
    }

    return NO;

删除操作

//执行删除语句
    [_db executeUpdateWithFormat:@"DELETE FROM 表名 WHERE 包含的字段 = %@", 字段的值];

下面介绍一种在数据库中存储对象的方法

        //模型转换为二进制数据  二进制数据必须保留对象关系 使用归档API
        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:需要存储的对象];
        [_db executeUpdateWithFormat:@"REPLACE INTO 表名(之前创建好的字段名) VALUES(%@)",data];
        这种更新数据库的方式和上面查询是否存在的结合使用,很方便
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值