相关推荐:一个大牛朋友实现的利用sqlite原生API 与runtime智能实现一行代码操作数据库
工作需要,这里就直接用FMDB来实现类似功能了,同样支持所有的基本数据类型、集合类型以及自定义模型
因为是基于FMDB的封装,所以首先要导入FMDB: pod 'FMDB'
然后根据需求创建一张表,表名一般是模型class的名称,但如果有多张表都有这个模型的情况,那就要自定义个名称,所以表名=className+descNameConnector+descName。
对模型而言,要有一个主键,主键什么意思这里就不再介绍了。
我们通过+ (NSString*)primaryKey这个模型类方法来指定主键,返回主键属性名称。
创建表然后去实现增删改查
1.增
这里有对模型属性类型相关的转换,这里就不上代码了。
主要是先通过runtime获取模型的属性列表,然后用kvc获取对应的值,再将其导入到数据库中
添加一个模型到数据库中此外还可以直接将整个数组加入到数据库中。
2.删
这里的primaryValue和relation是根据本删除的模型的主键值与指定主键值之间的关系来删除,如>,<,>=,<=,==如果不传,就代表删除整张表。
删除模型3.改
修改表中某些字段的值,这里的keys和values是指定属性名和属性值。
修改表中某些字段的值此外还有修改指定模型的值,以及修改指定模型的指定属性的值。
4.查
分页返回表中的数据。pageIndex:分页索引,即第几页 pageSize:分页个数,即每页多少个
分页查找表中的数据此外还有按照主键关系来查找数据。
5.数据库安全
数据库迁移的话就要根据模型自己设定版本号去自定义了,这里有对数据安全做一点处理,如果有加了数据库迁移,这里的代码可以注释掉。
去判断模型的属性列表是否和表里的一致
然后用异常机制去测试一下是否会出现问题
异常机制测试如果有问题,则删表
删表另外模型可以实现ignoreColumnNames该类方法,来忽略一些字段
项目地址:基于FMDB,一行代码实现数据库增删改查
使用时: pod 'WYDBManager'
网友评论