FMDB的再次封装

简述

在使用FMDB的过程中,老是记不住数据库的一些语法,而且经常性的写错,导致写代码的速度严重的降低,自己就在思考一个问题,难道就不能封装一下?在网上找了很多的第三方FMDB封装库,但是下载下来后都不能很好的运用在自己的项目中,无奈之下只能自己去封装,在看了Masonry的写法后,便运用链式编程方式来编写我的FMDB第三方库。

使用

github地址:LXQFMDBModel

pod  'LXQFMDBModel'

由于是才添加的新cocoapods第三方库,如果search不到,请更新一下repo

pod repo update

更新后就可以使用

代码使用

  1. 创建数据库文件
LXQFMDBModel *model = [[LXQFMDBModel alloc]initWithPath:path fileName:fileName];

path:数据库文件存储位置
fileName:数据库文件名

  1. 创建表
[model createTableName:@"temp1" maker:^(LXQFMDBMaker *maker) {
   maker.columnName(@"id").integer().primaryKey().autoincrement().notNull();
        maker.columnName(@"name").text().notNull();
        maker.columnName(@"age").text().notNull();
        maker.create();
    }];

对应sql语句

"CREATE TABLE IF NOT EXISTS tableName (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name TEXT NOT NULL, age TEXT NOT NULL)"

1.支持的数据类型 integer、text、blob
integer:有符号整型
text:字符串
blob:二进制数据类型
2.列修饰符 primaryKey、autoincrement、notNull
primaryKey:设置为主键
autoincrement:主键自增
notNull:非空

  1. 插入操作
[model insertIntoTableName:@"temp1" maker:^(LXQFMDBMaker *maker) {
        maker.columnName(@"name").values(@"Lixingqiao");
        maker.columnName(@"age").values(@24);
        maker.insert();
    }];

对应sql语句

"INSERT INTO 'tableName' (name, age) VALUES ('Lixingqiao',24)"

注意事项
目前只能使用键值对的形式进行插入,不支持缺省插入

  1. 删除操作
[model deleteFromTableName:@"temp" maker:^(LXQFMDBMaker *maker) {
        maker.where(@"name").equalTo(@"Lixingqiao");
        maker.Delete();
    }];

对应sql语句

"DELETE FROM tableName WHERE name== 'Lixingqiao'"

1.条件语句
在使用条件查询、条件删除、条件修改的时候使用where
多条条件语句通过OR、AND连接

逻辑判断
greateThan:大于
greateThanOrEqualTo:大于或等于
equalTo:等于
lessThan:小于
lessThanOrEqualTo:小于等于

  1. 修改操作
[model updateWithTableName:@"temp1" maker:^(LXQFMDBMaker *maker) {
        maker.set(@"name").assignment(@"liujing");
        maker.where(@"age").equalTo(@"24");
        maker.update();
    }];
"UPDATE tableName SET name = liujing WHERE age == 24"

注意事项
set的赋值使用assignment,不能使用equalTo,equalTo作为逻辑判断语句使用相当于'==', assignment相当于'='

  1. 查询操作
    [model selectFromTableName:@"temp1" maker:^(LXQFMDBMaker *maker) {
        maker.columnName(@"name");
        maker.where(@"name").equalTo(@"Lixingqiao").OR().where(@"age").greateThanOrEqualTo(@"24");
        maker.select();
    } resultSet:^(FMResultSet *set) {
        while ([set next]) {
            //相关操作
        }
    }];

对应sql语句

"SELECT name FROM tableName WHERE name == ''Lixingqiao" OR age >= 24

结语

这还是第一个版本的封装,是针对与我项目中需要使用的相关方法的一个封装,其他的数据类型和相关操作等还没来得及写,以后会陆续的更新到cocoapods库中去,因此这个版本并不是十分的完善,也希望各位大神,和各位朋友给我提意见,逐步的去完善。最后需要说明的是这篇博文是我根据我的代码纯手写的(纯原创),查询了相关的链式编程的博文,如果在博文中有侵犯您的知识产权,请你联系我,我将修改相关代码。
邮箱:[email protected]

你可能感兴趣的:(FMDB的再次封装)