MoFaDB 项目介绍




项目介绍:MofaDB

上次说的要做个objective-c下归档工具
大概是这样的:
已有归档工具内部太复杂,不容易调试,长久依赖也不利于成长,决定自己造个轮子。
一键存储,结构简单,方便调试;用字典作为数据结构沟通 Model 和 SQL DB
预估 10 MD,实际初版仅用3天

项目地址:

https://github.com/moofaa/MofaDB

项目特征:

项目使用:
  • 开发者只要引入头文件 #import “MofaDBPrefix.h”
  • 生成 Model 对象,继承自 Model
  • 调用 NSObject 类拓展方法,即可完成 db 自动创建、自动建表、手动增删改查。
+(void)insert:(id)model;
+(void)update:(id)model;

+(NSArray *)select:(id)model;
+(NSArray *)selectWhere:(NSString *)sqlWhere;
+(NSArray *)selectAll;

+(void)delete:(id)model;
+(void)deleteWhere:(NSString *)sqlWhere;
  • 非常重要的一点,使用一下四个方法的 model对象一定要设置 hostID。 当初没有考虑到一个对象增删改查,必定是基于此对象进行的。设置hostID唯一标识DB中此条数据。
+(void)insert:(id)model;
+(void)update:(id)model;
+(NSArray *)select:(id)model;
+(void)delete:(id)model;
项目后续需要改进的:
  • DB 我作为单例去做,考虑到并没有太多数据需要存,以简单的方式去做,没做并发
  • Object运行时,属性的类型固定的就那么几十个,每次获取属性类型列表和属性值列表,都要计算一下,这是不科学的,常用的就那么几个,NSString,NSNumber,int,float,bool等,这个可以放在内存中,用空间减少CPU的计算
  • Object 映射到SQL DB 中,只做了 NSINTEGER TEXT 这两种映射,有需要的开发者可以自己尝试拓展:只需要涉及两个文件(ObjType和 DBManager的select方法–为了返回对象)
  • 忽略部分 NSObject 系统自带属性,因为不需要。
项目借鉴:
  • Object SQL 数据类型映射
  • where 语句生成
  • 对象类直接操作DB,当初是想直接用DB管理类去做此事,考虑到 DB管理类 只负责增删改查,数据库和表的操作,不该把对象的东西放进来,于是把此功能独立放到 NSObject 类拓展方法 中
不做的功能,以及为什么不做:
  • 数据级联: 数据级联方便了开发者,增加了复杂度,增加复杂度导致不利于拓展,不利于开发者调试。
项目可以独立出来的工具:
  • Object runtime 获得所有属性名称-属性类型-属性值
  • SQL where 生成类

感谢

此项目借鉴了冯成林的CoreModel:30%的相似度,可以算是精简版DB。
https://github.com/CharlinFeng/CoreModel



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值