- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hibernate集成指南
名词约定
凡是代码、配置文件、IDE中出现的名词,均采用英文原称。
Roadmap
本文档的目标是,帮助读者在Eclipse中将Hibernate集成至Spring。
集成步骤大致如下:引入jar文件 - 在spring中注册data source,session factory,transaction manager- orm mapping-编写实体类,测试hibernate。
关于Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用
Hibernate, a history
为了寻找一种EJB2实体bean的替代方案,Gavin King在2001年开始开发Hibernate。
2003年,现为Red Hat一部分的JBoss雇佣了Hibernate的核心开发人员,并开始支持Hibernate。
2010年,Hibernate 3.x版本发布,它此时已具有如下诸如:拦截器/回调架构,用户自定义过滤器,基于java 5.0 annotation配置,并且实现了Java Persistence API 2.0 (JPA)。
Features
Mapping
使用xml或java annotation,实现数据库表与java类之间的映射关系。ORM可以实现java数据类到DB数据类型的映射,可以映射枚举,可以用一个java类property映射多个数据表列,可以映射one to one/one to many/many to many级联等。
Persistence
使用POJO进行对于开发者透明的持久化操作。支持Java 集合对象,Java泛型,延迟加载,级联操作等。
Hibernate Query Language (HQL)
Hibernate提供类SQL的Hiberante Query Language,同时也提供面向对象的Criteria Query方式进行数据操作。
Integration
Hibernate可以应用于独立java应用,也可以用于企业级的Java应用。也可以和其他语言集成。
Entities and components
实体是Hibernate持久化机制中独立于其他对象、被独立操作的对象。与之形成对比的是组件,组件是实体的下属。E.g. 假设Track表中的数据(歌曲)只能通过Album 表(专辑)进行操作,那么可以说Track是一个组件,Album是一个实体。
JDBC vs Hibernate
JDBC (Java Database Connectivity),帮助开发者可以不关注不同数据库的具体细节,使用相应的Driver进行数据库连接,并使用SQL进行操作。Hibernate是一个基于Java的ORM解决方案,开发者可以使用面向对象的思想和方式进行持久化层的开发。
由于对象和表中的数据不匹配,使用JDBC开发关系型数据库的面向对象应用是复杂的。使用JDBC的开发者需要自己动手写代码来完成表字段到对象属性的对应。而Hibernate基于xml或Java annotation的ORM机制替开发者完成了这个工作。
JDBC只支持SQL,开发者需要寻找高效的SQL语句,Hibernate提供的类SQL语法的HQL语言优化实际执行的SQL语言,并且,Hibernate也支持SQL。
基于JDBC的持久层开发必然会制造大量依赖于的数据结构的代码,一旦数据结构发生变化,需要大量地修改已有代码。基于Hibernate的持久层开发在面临这种情况时,只需修改xml配置文件或实体类,借助IDE的帮助可以快速进行修改。
Hibernate有自己的缓存机制,开发者也可以扩展自己的规则。而JDBC的缓存需要开发者自己实现。
集成步骤
引入Hibernate相关的jar文件
Hibernate jars
加入build path
请参考《Struts2集成指南》的相关章节
在Spring IoC容器中注册数据源、session factory、事务管理器
applicationContext.xml
?xml version=1.0 encoding=UTF-8?
beans xmlns=/schema/beans
xmlns:xsi=/2001/XMLSchema-instance xmlns:context=/schema/context
xmlns:aop=/schema/aop xmlns:tx=/schema/tx
xm
文档评论(0)