手把手教你写个ORM(一)

这是手把手系列的第一篇,希望能够开门红,高手们可以离开了,菜鸟们请继续

这里准备把一个类似ibaties的半自动ORM的设计和实现过程一步步地剖析出来,供菜鸟参考,功能很简单,甚至我只能用简陋来形容了,不过把一些关键点破后,希望后浪们不用再花功夫摸索了。

为什么我们要重复发明轮子?因为不亲自经历一遍发明轮子的过程就无法发明出风火轮^_^

准备知识:
首先要会用C#,如果不会请先去书店买书。
要熟悉ADO.NET,我们不会去重头设计oledb,所以所有的操作最终都是ADO.NET去完成的
起码知道什么是XML,我们的配置文件依赖这个东西
最好会反射,如果现在发现以上提到的有不会的就去google搜索一番吧,google是最好的老师,除了教会我写程序,还教会了我如何做可乐鸡翅泡妹妹,God Bless Google。

在万事俱备的时候不要忘记在你的机器上安装VS2005,本着与时俱进的原则,我们还是放弃做1.1版本的了,毕竟范型可以让代码更加的简洁。

打开你的VS2005,新建一个项目,右键单击项目的属性,在名字空间里写上你的大名,好了,现在就要开始正式启程来完成你自己的ORM Framework了。如果你参照本文做出来了,恭喜,本年度最佳菜鸟非你莫属了。再次重申,在高手眼里这是个很弱质的重复发明的轮子,如果你发明过了,就不要看啦,浪费时间的。

好了,建好了项目也不要兴奋过头,我们现在开始来规划规划,俗话说,磨刀不误砍柴工,先谋后动才是王道。

首先,我们要确定这个Project的Scope,不要一开始就信心爆绷发誓要做个牛鼻轰轰天下第一宇内无双的东西出来,那样子的思想趁早打掉,我们只是实现一个demo而已。所以很多华而不实的东西都要去掉,我们用ibaties作为蓝本,所以我们需要对每个类提供一个配置文件,并且需要在配置文件作了修改的时候自动加载而不用重新启动服务。这里ibaties的配置文件我们觉得还是过于复杂,于是作出再次简化,我们只配置SqlMap,但是对象的映射我们通过Attribute在实体类里面配置,ResultMap也省了,怎么来还是怎么去吧。缓存机制还是要保留,毕竟要演示一下,LazyLoading就算了,需要AOP,我们暂时不去理会它,自己调用一次代码就load了,我决的比LazyLoading使用,太Lazy了不一定就简单。
OK,就这么简单,我们这里暂时不归纳需求,作为一个见习架构设计师来说需要多练习对需求的把握,这个就权且当作作业了。有兴趣的小菜可以写写看,明天我们继续设计

posted on 2007-01-23 16:37  亚历山大同志  阅读(6206)  评论(15编辑  收藏  举报

导航