前言: Hibernate感觉这个东西还是比较好的,可以自动生成一些大家都写腻了代码。可是它内部原理是什么样的呢,为了搞清楚它的内部体系,自己根据自己对反射机制的一点了解 ,模仿了个简单的Hibernate,这是个基本能实现 增、删、查、改、的功能的简单的myHibernate,就是可以在,创建了一个pojo类对象、配置好相应的xml文件后,调用方法即可对该对象与数据库进行相关操作,相当于自己封装了一个dao类包。这里面还有很多不完善的地方,希望大家能够指点,让我真正理解它内部原理
一、
准备工作:配置项目需要的第三方插件:1.数据库驱动类,2.xml解析dom4j组件。
二、
思路:
1.大体思路:
要将一个数据在数据库中进行相关的操作(增删查改)
首先要链接上数据库,其次就是要有对数据库表对应的sql操作语句
2.仔细分析:
Q:怎样才能链接上数据库 ?
A:要有连接数据库的相关参数
Q:参数怎么得来?
A:创建一个类专门来保持存数据库链接的对应参数
Q:这个类根据什么来创建?
A:根据配置的xml来创建
Q:怎样得到相应的sql语句?
A:采用sql语句拼接;
Q:如何获得sql语句拼接的字段?
A:创建一个专门保存数据表中字段的类
Q:根据什么来创建这个数据库表字段类
A:根据xml配置文件
Q:xml文件又怎么配置
A:根据相应的pojo类
三、
步骤:
根据以上思路 按以下顺序进行:
1.写pojo类 :
a.数据库参数pojo类
b.测试pojo类
2.配置xml文件:
a.配置数据库参数xml
b.配置测试pojo类xml
最后记得将测试 pojo类的路径加进 数据参数xml文件中以便domj4根据这个路径进行解析
3.解析xml
通过dom4j组件边解析,边设置数据库参数或者测试pojo,数据库表对应字段的值
4.拼接sql语句
根据上一步解析出来设置的值 进行拼接。
5.连接数据库执行sql 语句、
四、
心得 :
在写这个东西的时候,感觉自己好像思路跟步骤很清晰,可是写着写着出现问题的时候,自己感觉总是分析不出来。最后当自己找这个问题的根源只是出现在一个循环语句里
,真的是太郁闷了。 跟***哥交流下才发现,如果自己意味一个人在哪里搞,估计我就死在那个for循环语句里面了,
靠。
通过写这个东西发现自己 在代码调试方面,和问题的描述方面 真的是菜到了极点,就是有问题不知道怎么问,就是问了,别人也听的头晕目眩的,不知道你在哪里说什么,就听见自己在哪里里 ‘这个,那个,。。。。。。。。叽叽歪歪
唉。。。。下次跟别人交流的时候,不注意这方面都不行了啊。
还有就是,遇到问题时候,如果能够静下心来,不那么浮躁,自己不要想一下解决不了,就慢慢分析
单独测试,做到这点很重要。这样才能对分析问题有进展,也不容易轻易放弃。
截个项目源码文件结构图吧,希望多多大家的指教,提出意见,我在建包的时候总是犹豫,很多时候不知道,这个类应该放到哪个包好一点,到底建几个包最好等等。。。。,
有人看了源码的请指教,代码如何重构下使得更具有重用性,扩展性,增强可维护性。。。。。。。。 附件中有源码
- 大小: 47.8 KB
- 大小: 62.6 KB
分享到:
相关推荐
7. **查询语言**:myHibernate可以提供一个简单的查询接口,允许开发者通过Java代码编写查询,类似于HQL(Hibernate Query Language)。这将使代码更易于理解和维护。 总结来说,手写myHibernate涉及到Java对象与...
总的来说,这个“自己写的hibernate框架”为初学者提供了一个宝贵的学习资源。通过实际操作这个自定义框架,学生不仅可以理解Hibernate的基本工作流程,还能学习到如何设计和实现一个类似的ORM解决方案。这将有助于...
Hibernate是一个开源的ORM框架,它提供了一种在Java应用程序中持久化数据的方式,将复杂的SQL操作转化为简单的Java对象操作。通过Hibernate,开发者可以避免编写大量的JDBC代码,提高开发效率并降低出错概率。 二、...
本文将详细探讨一个自编的Hibernate实现——myHibernate,旨在帮助读者理解Hibernate的基本工作原理,并从中获得对ORM框架更深层次的理解。 首先,myHibernate项目实现了Hibernate的核心功能,包括对象的持久化、...
4. **查询语言**:考虑创建一个简单的HQL(Hibernate Query Language)或者Criteria API的仿制品,允许开发者用面向对象的方式来编写查询。 5. **缓存机制**:虽然可能较为复杂,但可以尝试实现一级缓存(Session...
Hibernate是一个开源的ORM框架,它允许开发者使用面向对象的方式来操作数据库,将Java类与数据库表进行映射,从而避免了传统的JDBC编程模式中的大量重复代码。Hibernate支持多种数据库,包括MySQL、Oracle、...
【标题】"MyHibernate.rar" 是一个以 Hibernate 框架为核心的示例项目,它旨在帮助初学者理解和应用 Hibernate 在实际开发中的基本用法。这个压缩包包含了学习 Hibernate 必要的组件,让我们来逐一剖析其中包含的...
总之,"hibernate4多租户项目"提供了一个实用的框架,帮助开发者在Hibernate 4环境下实现多租户应用,有效地管理和隔离不同租户的数据。通过深入理解并实践该项目,开发者可以更好地掌握如何在Java应用中实现多租户...
在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本demo旨在提供一个基本的Hibernate使用示例,帮助理解其核心概念和功能。 一、Hibernate概述 Hibernate是Java领域内...
- **Session**: 提供了一个事务边界内的会话,用于执行CRUD操作。 Hibernate的工作原理可以概括为:通过Configuration加载配置信息,然后创建SessionFactory,再由SessionFactory生成Session,最后通过Session执行...
Hibernate是一个优秀的对象关系映射(ORM)工具,它简化了Java与数据库之间的数据操作。 标题"使用Hibernate快速实现持久层处理的实例工程源代码"表明,这个项目主要聚焦于展示如何高效地利用Hibernate框架来完成...
如果一个应用需要同时连接多个数据库,那么就需要为每一个数据库创建一个对应的`SessionFactory` 实例。 创建`SessionFactory` 实例的过程如下: ```java Configuration cof = new Configuration().configure(); ...
Hibernate是一个开源的Java库,它为Java应用程序提供了一个框架,用于管理持久化数据。通过使用Hibernate,开发者可以避免编写大量的JDBC代码,简化数据库操作,提高开发效率。 2. **ORM概念** 对象关系映射(ORM...
5. **配置Hibernate配置文件(hibernate.cfg.xml)**:选择“下一步”,然后新建一个Hibernate配置文件,选择相应的数据库连接方式。在数据库配置中,URL要正确设置,例如`jdbc:mysql://localhost:3306/your_database_...
在`MyHibernate3.6_Blank`项目中,你将找到一个基本的Hibernate环境搭建示例,包括了上述所有步骤的实现。你可以以此为基础,根据自己的项目需求进行扩展和定制。通过理解和实践这些基础知识,你将能够熟练地使用...
Hibernate是一个开源的对象关系映射(ORM)框架,用于将Java对象映射到关系型数据库中。Hibernate 3.6版本是一个重要的版本,提供了许多改进和新特性。本文将探讨Hibernate 3.6中的相关知识点,包括Java API、ORM...
- **多对多**: 通常涉及一个中间表来维护多个实体之间的关联。 #### 八、延迟加载配置 - **属性**: `lazy=false`表示被动方的记录由Hibernate负责加载,存储在主控方的集合中。 - **示例**: - `java.util.Set` ...
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的封装,使得Java程序员可以更方便地操作数据库。它提供了一种规则,使得我们可以通过对象的方式来操作数据库,而无需关心底层的SQL语句。 二、...