`

手把手教你写个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,就这么简单,我们这里暂时不归纳需求,作为一个见习架构设计师来说需要多练习对需求的把握,这个就权且当作作业了。有兴趣的小菜可以写写看,明天我们继续设计
分享到:
评论

相关推荐

    一个简单的JavaORM框架寂寞消遣之作可供学习参考只有几百行代码。

    这个简单的Java ORM框架,名为“Potato ORM”,可能是作者Li Hengming在业余时间创作的一个学习项目,用于消遣和教育目的。它具有极简的设计,包含的类数量不多,对于初学者来说,是理解ORM工作原理和实现方式的良好...

    struts spring hibernate ssh 三大框架集成详细步骤 手把手教你搭框架

    Hibernate是一个优秀的对象关系映射(ORM)框架,使得Java开发者可以方便地操作数据库。它通过配置文件将Java类与数据库表进行映射,简化了SQL的编写。在SSH中,Hibernate负责数据持久化,Spring通过SessionFactory...

    手把手教你hibernate3.2

    ### 手把手教你Hibernate 3.2 #### 教学目标与内容概览 本教程由具有数十年教育经验的资深Java教师吴湘江老师编写,旨在帮助学习者全面掌握Hibernate 3.2的核心概念与实际操作技巧。教程分为多个章节,首先概述了...

    SSH入门教程(手把手教你)

    SSH入门教程:手把手教你整合Struts1.2、Spring和Hibernate SSH是Java开发中的一个经典技术栈,由Struts、Spring和Hibernate三个开源框架组成。本教程将引导初学者逐步了解并掌握这三个框架的整合,从而实现一个...

    手把手教你开发ejb3.0第一章

    在"手把手教你开发ejb3.0第一章"中,我们将深入探讨EJB 3.0的基础知识和核心概念。 1. **EJB 3.0概述** - **简化API**:EJB 3.0引入了注解(Annotations),大大减少了XML配置,使得部署和开发更简单。 - **实体...

    手把手教你成为架构师课程资料包大放送

    总之,"手把手教你成为架构师课程资料包大放送" 是一个全面的学习资源,涵盖了成为一名合格架构师所需的关键技能。通过深入研究Android架构组件和MyBatis,你将能够构建出稳定、高性能的应用,并为未来的软件架构...

    手把手教你SSH2整合

    通过这个"手把手教你SSH2整合"的项目实例,你可以深入理解这三大框架如何协同工作,提高开发效率,以及如何解决在实际开发中可能出现的问题。实践中,你将学到如何配置和优化SSH2,以及如何在项目中应用最佳实践。这...

    手把手教你免费获取正版 IntelliJ IDEA.docx

    申请流程相对简单,你需要在GitHub或其他开源平台拥有一个维护超过3个月的项目。通过访问https://www.jetbrains.com/shop/eform/opensource?product=ALLAPPLY FOR FREE LICENSES来申请免费许可证。一旦申请成功,你...

    手把手教你用Myeclipse新建SSH项目(spring,struts,hibernate).zip

    3. **Hibernate框架**:Hibernate是一个对象关系映射(ORM)框架,使得Java开发者可以使用面向对象的方式来操作数据库。在MyEclipse中整合Hibernate: - 添加Hibernate库到项目。 - 创建Hibernate配置文件`...

    手把手教ssh,对于初学者有用啊

    通过这个“手把手教SSH”的教程,初学者可以从基础开始,逐步深入到SSH框架的每一个细节,建立起完整的Java Web开发知识体系,为未来构建复杂的企业级应用打下坚实的基础。同时,理解并熟练掌握SSH框架,也能为职业...

    图文并茂手把手教你搭建SSH框架(教程)

    首先,创建一个新的Web Project工程。这一步非常基础,只需根据Myeclipse的向导设定工程名称即可。完成创建后,紧接着是添加Struts框架。在工程中选择“New” -> “Other” -> “Struts 2” -> “Struts 2 Project”...

    MyEclipse开发Struts+Spring+Hibernate入门(手把手教你)

    Hibernate是一个强大的对象关系映射(ORM)框架,它将Java对象与数据库表进行映射,从而避免了繁琐的SQL操作。在Hibernate中,实体类代表数据库表,实体类的对象代表表的行,而持久化操作如增删改查则通过Session...

    手把手教你ajax的三层架构(含代码)

    本教程将深入讲解AJAX的三层架构,并通过一个名为"最简单三层代码(petshop4.0剥离出来的)"的示例代码来辅助理解。 首先,我们来解析AJAX的三层架构: 1. 表现层(Presentation Layer): 这是用户直接交互的部分,...

    手把手教你如何用SSH框架实现留言板

    3. **Hibernate**:是一个对象关系映射(ORM)工具,它允许开发者使用Java对象来操作数据库,减少了对SQL的直接依赖。Hibernate通过配置文件(如hibernate.cfg.xml)来定义对象和表之间的映射关系。 在实现留言板的...

    教你如何使用 django + vuejs 快速构建项目.docx

    VueJS 的单文件组件允许将模板、脚本和样式写在一个文件中,使得开发更加方便、快速。组件之间可以通信,例如 ListULB 组件可以将 ULB 对象传给 AddVServer 组件,实现数据双向绑定。 结论 使用 Django 和 Vue.js ...

    SpringMVC精品资源--手把手教你整合最简洁的SSM框架:SpringMVC + Spring + MyBatis.zip

    而MyBatis则是一个持久层框架,简化了数据库操作。下面我们将详细探讨这三个框架及其整合过程。 **SpringMVC** SpringMVC是Spring框架的一部分,它是一个基于模型-视图-控制器(MVC)设计模式的Web应用框架。它将...

    Hibernate手把手教学

    - Hibernate是一个开放源代码的Java ORM框架,它简化了Java应用与关系数据库之间的交互。 - 它提供了一种规则,将Java对象映射到关系数据库表,使得开发人员可以使用面向对象的方式来处理数据库操作。 2. **安装...

    手把手教您搭建SSH框架环境

    Hibernate是一个对象关系映射(ORM)框架,简化了Java应用与数据库之间的交互,允许开发者用面向对象的方式来操作数据库。 【SSH框架环境搭建步骤】 1. **数据库创建** - 代码创建:通过SQL语句创建名为`demouse`...

Global site tag (gtag.js) - Google Analytics