JQFMDB-FMDB的二次封装操作简便
一、项目简介
JQFMDB是对FMDB的封装项目。它具有多种优良特性,如线程安全、支持事务操作、操作简单,能直接对Model和Dictionary进行存储,并且拓展性强,不会侵入任何Model,也不需要实现特殊协议。
二、安装方式
-
Cocoapods安装
- 在Podfile中添加
pod 'JQFMDB'
。 - 执行
pod install
或pod update
。 - 导入
<JQFMDB/JQFMDB.h>
。
- 在Podfile中添加
-
手动安装
- 下载JQFMDB文件夹内的所有内容。
- 将JQFMDB.h和JQFMDB.m以及FMDB添加(拖放)到工程。
- 导入 “JQFMDB.h”。
三、使用方法
-
创建数据库
- 单例方法:
+(instancetype)shareDatabase;
,默认在NSDocumentDirectory下创建JQFMDB.sqlite。+(instancetype)shareDatabase:(NSString)dbName;
+(instancetype)shareDatabase:(NSString)dbName path:(NSString)dbPath;
,只要使用这三个方法任意一个创建成功,之后可使用三个中任意一个方法获得同一个实例。
- init方法:
-(instancetype)initWithDBName:(NSString)dbName;
-(instancetype)initWithDBName:(NSString)dbName path:(NSString)dbPath;
,操作几个数据库可以init方法获得不同实例。
- 单例方法:
-
创建表
- 方式一(用Model创建表):定义类的属性,如Person类,然后使用
[db jq_createTable:@"user" dicOrModel:[Person class]];
创建表,表的字段为类的有效属性。 - 方式二(用字典创建表):例如
[db jq_createTable:@"user" dicOrModel:@{@"name":@"TEXT",@"age":@"INTEGER"}];
,表的字段为字典的key,类型为字典的value。
- 方式一(用Model创建表):定义类的属性,如Person类,然后使用
-
增删改查操作
- 插入:
- 插入单条数据,支持model和dictionary,如
[db jq_insertTable:@"user" dicOrModel:person];
或[db jq_insertTable:@"user" dicOrModel:@{@"name":@"cleanmonkey",@"phoneNum":@(18866668888)}];
。 - 插入一组数据,也支持model和dictionary混合的数组,如
[db jq_insertTable:@"user" dicOrModelArray:mArr];
。 - 异步插入数据也可通过线程安全的方法实现。
- 插入单条数据,支持model和dictionary,如
- 删除:
- 根据条件语句删除数据,如
[db jq_deleteTable:@"user" whereFormat:@"WHERE rowid=(SELECT max(rowid)FROM user)"];
。 - 删除表中全部数据,如
[db jq_deleteAllDataFromTable:@"user"];
。
- 根据条件语句删除数据,如
- 更新:
- 根据条件更新数据,如
[db jq_updateTable:@"user" dicOrModel:@{@"name":@"testName"} whereFormat:@"WHERE rowid=(SELECT max(rowid)FROM user)"];
。 - 更新所有数据,如
[db jq_updateTable:@"user" dicOrModel:@{@"name":@"godlike"} whereFormat:nil];
。
- 根据条件更新数据,如
- 查找:
- 查找指定数据,如
NSArraypersonArr = [db jq_lookupTable:@"user" dicOrModel:[Person class] whereFormat:@"where name='cleanmonkey'"];
。 - 查找所有表中数据,如
NSArraypersonArr = [db jq_lookupTable:@"user" dicOrModel:[Person class] whereFormat:nil];
。
- 查找指定数据,如
- 插入:
-
多线程操作之线程安全
要保证线程安全,可将操作放在
jq_inDatabase:
的block中执行,如[db jq_inDatabase:^{[db jq_insertTable:@"user" dicOrModel:@{@"name":@"cleanmonkey"}];[db jq_lookupTable:@"user" dicOrModel:[Person class] whereFormat:@"where name='cleanmonkey'"];}];
。 -
事务操作
事务操作放在
jq_inTransaction:
的block中,例如转账操作中,如果某个环节失败可进行回滚操作。
四、项目总结
JQFMDB是一个功能丰富的FMDB封装项目,在数据库操作方面提供了简洁方便的方式。如果在使用过程中有任何问题或者需要新功能接口,可以提issue。期待大家在评论区留言,分享使用心得或者提出改进建议。
项目地址
数据统计
数据评估
关于JQFMDB-FMDB的二次封装操作简便特别声明
本站链氪巴士提供的JQFMDB-FMDB的二次封装操作简便都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。
相关导航
暂无评论...