手把手教你写个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 亚历山大同志 阅读(2868) 评论(17)  编辑 收藏 网摘 所属分类: 手把手系列

评论

#1楼 2007-01-23 18:09 Anders Cui      

嗯,看起来很美
打算过段时间深入地学习IBatis
觉得跟随你的这个东东会很有帮助
  回复  引用  查看    

#2楼 2007-01-23 19:36 .Live      

会持续 关注你的文章tks   回复  引用  查看    

#3楼 2007-01-24 11:03 freetofly      

坚决不能TJ   回复  引用  查看    

#4楼 2007-01-24 13:13 Cure      

蹲坑守候。。。。   回复  引用  查看    

#5楼 2007-01-24 14:34 老流      

嘿嘿学习ORM中..   回复  引用  查看    

#6楼 2007-01-25 08:21 兰亭      

菜鸟吃菜ing……^-^   回复  引用  查看    

#7楼 2007-01-25 11:36 ganett_redaaple[未注册用户]

希望博客园这一类的文章能够越来越多~   回复  引用    

#8楼 2007-01-25 16:53 我不是一只鹿      

如果你参照本文做出来了,恭喜,本年度最佳菜鸟非你莫属了

这句话逗死我了 呵呵
  回复  引用  查看    

#9楼 2007-01-25 17:08 ddr888      

一看就是高手 一看就是高手!   回复  引用  查看    

#10楼 2007-01-26 14:10 海纳百川      

楼主,

你的手这么快,狂发帖子。你应该是“本年度最佳快手”. :-)

http://www.cnblogs.com/david-weihw">http://www.cnblogs.com/david-weihw
  回复  引用  查看    

#11楼 2007-01-30 08:58 吴杰      

了解一下!   回复  引用  查看    

#12楼 2007-01-30 16:41 Frank[未注册用户]

问一个很弱的问题,这个新建的project的类型是什么。一个普通的C#project 还是 Database Project   回复  引用    

#13楼 2007-02-01 21:51 bugSharp      

很有意思, :)   回复  引用  查看    

#14楼 2007-09-22 11:22 zz[未注册用户]

不错,支持   回复  引用    

#15楼 2008-01-19 19:40 tianhu      

好文啊,
转悠了很久终于找到个这样的系列文章。
一定认真看完表示对作者的尊敬
  回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 628098




相关文章:

相关链接:

导航

公告

鉴于很多TX投诉黑色背景杀伤眼球,遂换个容易阅读的
PS:背景音乐是电影《斯密斯夫妇》的主题乐 Mondo Bango
!!八强八强!!!!!!!
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

统计

与我联系

搜索

 

常用链接

留言簿

我参加的小组

我的标签

随笔分类(86)

随笔档案(85)

相册

朋友的Blog

同事的Blog

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜