登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

FMDB改进方案YIIFMDB:直接将Model存入数据库,不需要写sql语句

[复制链接]
来自: 狼居胥侯 分类: iOS精品源码 上传时间: 2018-11-1 15:12:19
Tag:

项目介绍:

YIIFMDB的github地址(支持Cocoapods,给个Star)
YIIFMDB的blog地址

YIIFMDB是基于FMDB的进一步封装,可以直接将Model的数据存入数据库,并且在绝大部分情况下不需要写sql语句,只需要执行几个方法就行。

简单例子如下:
创建表

// 基于Model创建一张表
YIIFMDB *db = [YIIFMDB shareDatabase];
[db createTableWithModelClass:[LCVideoModel class] excludedProperties:nil tableName:tableName];

插入数据:

// 基于Model对象插入数据库
LCVideoModel *model = [[LCVideoModel alloc] init];
model.name = [NSString stringWithFormat:@"lc%d", (arc4random() % 100)];
model.gender = arc4random() % 2;
model.age = arc4random() % 80;
model.floatNumber = (arc4random() % 20) / 100.0;
model.doubleNumber = (arc4random() % 20) / 100.0;
model.isMan = arc4random() % 2;
model.number = @(arc4random() % 10);
        
YIIFMDB *db = [YIIFMDB shareDatabase];
BOOL isSuccess = [db insertWithModel:model tableName:tableName];

删除一条数据:

YIIFMDB *db = [YIIFMDB shareDatabase];
YIIParameters *parameters = [[YIIParameters alloc] init];
// db.primaryKey 是数据库的主键,这条语句意思是删除主键 = 1的那条数据
[parameters andWhere:db.primaryKey value:@"1" relationType:YIIParametersRelationTypeEqualTo];
BOOL isSuccess = [db deleteFromTable:tableName whereParameters:parameters];

更改一条数据:

YIIFMDB *db = [YIIFMDB shareDatabase];
YIIParameters *parameters = [[YIIParameters alloc] init];
// 找到主键 = 10的那条数据
[parameters andWhere:db.primaryKey value:@"10" relationType:YIIParametersRelationTypeEqualTo];
// 将主键为10的那条数据的name 设置为 monkey        
BOOL isSuccess = [db updateTable:tableName dictionary:@{@"name": @"monkey"} whereParameters:parameters];

查询数据:

YIIFMDB *db = [YIIFMDB shareDatabase];
YIIParameters *parameters = [[YIIParameters alloc] init];
// 获取到主键 < 5的那些值
[parameters andWhere:db.primaryKey value:@"5" relationType:YIIParametersRelationTypeLessThan];
        
NSLog(@"主键值小于5的所有数据:%@", [db queryFromTable:tableName model:[LCVideoModel class] whereParameters:parameters]);

除此之外,YIIFMDB还提供了添加一个字段,表是否存在,获取表中符合条件的个数,求和,最大值,平均值,最小值等。除此之外,YIIFMDB还提供了数据库安全操作,用法是:

队列

YIIFMDB *db = [YIIFMDB shareDatabase];
[db inDatabase:^{
     // 增删改查放在此代码块里执行则可以保证线程安全
}];

事务

YIIFMDB *db = [YIIFMDB shareDatabase];
[db inTransaction:^(BOOL *rollback) {
// 如果某一个操作失误,则可以执行回滚操作
BOOL isSuccess = YES;   // 数据库操作是否操作成功
if (!isSuccess) {
     *rollback = YES;
                
     return ;
}
}];

相关源码推荐:

我来说两句
*滑动验证:
所有评论(5)
android小哥 2018-11-2 10:22:41
学习...学习...
回复
乱世佳人520 2018-11-2 10:23:23
我是来学习的
回复
知新1990 2018-11-2 10:24:04
感谢分享,code4app有你更精彩
回复
Rf2698 2018-11-2 10:24:15
code4app好的内容真的很多~赞
回复
kengsir 2018-11-2 10:24:18
感谢分享,code4app有你更精彩
回复
inta加加 2018-11-2 10:24:25
code4app好的代码demo真的很多,谢谢啦~
回复
xihuayu2010 2018-11-4 16:23:35
楼主用心了,内容非常精彩。
回复
code4app热心网友 2018-11-7 14:56:04
楼主威武啊,Code4App有你更给力!
回复
雨露123 2018-11-9 16:45:35
感谢分享,Code4App有你更精彩:)
回复
提取码:  下载次数:30 状态:已购或VIP 售价:0(原价:15)金钱 下载权限:初级码农 
1538 0 30
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表