LXQFMDBModel 0.0.2

LXQFMDBModel 0.0.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2017年6月

lixingqiao 维护。



  • XingQiao Li
  1. 封装目的

在学习 FMDB 的过程中,总是记不住数据库相关操作的代码,而且觉得 FMDB 的一些操作过于复杂,于是萌生出自己封装一个 FMDB 数据的想法,最初想创建一个 model,然后这个 model 自动创建 table,但是在实际操作中出现了很多的问题,于是放弃第一个版本的想法。在一次做页面布局的时候发现 Masonry 的布局方式很特别,于是开始查看 Masonry 源码,在学习当中明白 Masonry 使用的是链式编程思想,突然一下灵光闪现,为什么我不能用同样的方法来写我自己的 FMDB 模型呢?于是乎开始了自己的尝试,完成后的效果自己还是比较满意的。

2. 当前版本支持的数据类型

integer: 32 位的整数

text:字符串类型

blob:二进制数据类型

LXQFMDBModel的使用

  • 创建数据库
LXQFMDBModel *model = [[LXQFMDBModel alloc]initWithPath:path fileName:sqliteName];

path: 数据库保存地址

sqliteName: 数据库名称

  • 创建表格
[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();
    }];
  • 插入数据
[model insertIntoTableName:@"temp1" maker:^(LXQFMDBMaker *maker) {
        maker.columnName(@"name").values(@"Lixingqiao");
        maker.columnName(@"age").values(@24);
        maker.insert();
    }];
  • 删除数据
[model deleteFromTableName:@"temp" maker:^(LXQFMDBMaker *maker) {
        maker.where(@"name").equalTo(@"Lixingqiao");
        maker.Delete();
    }];
  • 修改数据
[model updateWithTableName:@"temp1" maker:^(LXQFMDBMaker *maker) {
        maker.set(@"name").assignment(@"liujing");
        maker.where(@"age").equalTo(@"24");
        maker.update();
    }];
  • 查询数据
[model selectFromTableName:@"temp1" maker:^(LXQFMDBMaker *maker) {
        maker.columnName(@"name");
 maker.where(@"name").equalTo(@"Lixingqiao").OR().where(@"age").greateThanOrEqualTo(@"24");
        maker.select();
    }];

后记

当前版本还不完善,后期会加上各项数据库的操作代码,以及解决数据库线程安全的问题,等待后续更新,当然也希望各位大神多多指点一二,也热烈欢迎各位将你们的建议或者在使用中发现的问题通过 email 发给我,

邮箱:[email protected]