iOS:基于FMDB,一行代码实现数据库增删改查

2018-05-31  本文已影响36人  Theendisthebegi

相关推荐:一个大牛朋友实现的利用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'

上一篇 下一篇

猜你喜欢

热点阅读