(3)实体和结构【利用objective-c的runtime特性,结合FMDB实现轻量级的ORM】

版权声明:本文为博主原创文章,未经博主允许不得转载。

0、本ORM中需要的角色

根据前面提出的预期需求和思考,本ORM中至少得有这么这么几个角色实体:

  • 整体而言,负责数据库表和实体的映射协议【BCORMEntityProtocol】
  • 本ORM支持的数据类型实体,如TEXT,INT...【BCSqliteType】
  • 字段约束实体,是否主外键等【BCConstraints】
  • 外键参考实体,实体间关系【BCReference】
  • 操作条件封装实体【BCSqlParameter】
  • 操作主入口,orm门面【BCORMHelper】
  • 实例表实体:【StudentEntity】

至于这些角色间关系如何组织,还得好好思考下....

1、整体UML结构简图

根据上面列出的实体类,组织了这些类间的关系,做出了如下的UML关系图:

这个就是本次ORM的整体结构了,从整体上看,结构还算比较简单明了。

回字有四种写法,程序也如此,每个人的思路肯定都不一样,但上图就是我目前能给出的结构了,如果发现有啥大问题,或由值得改进的地方,还请指正。

时间: 2024-08-10 23:55:51

(3)实体和结构【利用objective-c的runtime特性,结合FMDB实现轻量级的ORM】的相关文章

(2)预期+思考【利用objective-c的runtime特性,结合FMDB实现轻量级的ORM】

版权声明:本文为博主原创文章,未经博主允许不得转载. 本次利用一个常见的数据库关系例子说明本ORM的基本需求.   班级.学生 这一对表,关系为1对多,班级表主键id,学生表主键num.外键班级id.   表结构如下: 班级表class结构 学生student表: 程序中对应的实体类分别是:班级实体(ClassEntity),学生实体(Student) 其基本objective-c类结构如下: @interface ClassEntity : NSObject @property (nonato

(4)代码及测试【利用objective-c的runtime特性,结合FMDB实现轻量级的ORM】

0.测试代码及结果 1.用法_建表_映射 2.insert实体到sqlite 3.update更新实体 4.query查询一个或多个 5.delete删除实体 6.基于条件的更新和删除 7.结束语

刨根问底Objective-C Runtime

http://chun.tips/blog/2014/11/05/bao-gen-wen-di-objective%5Bnil%5Dc-runtime-(2)%5Bnil%5D-object-and-class-and-meta-class/ 刨根问底Objective-C Runtime(1)- Self & Super 刨根问底Objective-C Runtime(2)- Object & Class & Meta Class 刨根问底Objective-C Runtime(

刨根问底Objective-C Runtime(2)- Object & Class & Meta Class

Chun Tips 专注iOS开发 刨根问底Objective-C Runtime(2)- Object & Class & Meta Class 上一篇笔记讲述了objc runtime中Self 和 Super的细节,本篇笔记主要是讲述objc runtime中关于Object & Class & Meta Class的细节. 习题内容 下面代码的运行结果是? @interface Sark : NSObject @end @implementation Sark @e

刨根问底Objective-C Runtime(1)- Self & Super

刨根问底Objective-C Runtime(1)- Self & Super - Chun Tips Chun Tips 专注iOS开发 刨根问底Objective-C Runtime(1)- Self & Super 前言 关于Objective-C Runtime一篇好的文档 : Understanding the Objective-C Runtime 译文地址为: http://blog.cocoabit.com/blog/2014/10/06/yi-li-jieobjecti

刨根问底Objective-C Runtime(4)- 成员变量与属性

http://chun.tips/blog/2014/11/08/bao-gen-wen-di-objective[nil]c-runtime(4)[nil]-cheng-yuan-bian-liang-yu-shu-xing/ 上一篇笔记讲述了objc runtime中消息和Category的细节,本篇笔记主要是讲述objc runtime的 成员变量和属性. 习题内容 下面代码会? Compile Error / Runtime Crash / NSLog…? @interface Sark

iOS开发——语法OC篇&Objective-C新特性的总结

Objective-C新特性的总结 1.nonnull nonnull : 标示当前属性不为空,让外界放心用,只做标示用,即使为空,也木有办法    相当于swift里面的 ! 号 @property (nonnull, nonatomic, strong) NSString *name; 2.nullablenullable : 标示当前属性可能为空,让外界使用时注意    相当于swift里面的 ? 号 @property (nullable, nonatomic, strong) NSSt

Objective-O Runtime 运行时初体验

Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等. 这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码.对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以正常的运行.这个运行时系统即Objc Runtime.Objc Runtime其实是一个Runtime

利用flashback transaction query新特性进行事务撤销

具备了flashback version query查询的基础,我们就可以进行基于flashback version query的恢复.这就是flashback transaction query.flashback transaction query可以从FLASHBACK_TRANSACTION_QUERY中获得指定事务的历史信息以及Undo_SQL,通过这个UNDO_SQL,我们就可以恢复特定的事务.Flashback transaction query需要用到FLASHBACK_TRAN