- 1、本文档共132页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernatestudy
Hibernate 初识
在Struts学完模型后,本来是想做一个例子的,但已经发现要与Hibernate联系起来了。于是今天 新增了Hibernate分类。好了,废话不多说,进入主题!Hibernate是对象模型与关系数据库模型之间的桥梁!Hibernate位于软件应用的持久化层,它应用了ORM机制,对象关系映射!随着软件规模的不断增大,软件的体系结构逐渐由向多层体系发展,现在一般的公司在招聘程序员的时候都要求有多层开发经验!那么我们先来看看分层体系的发展从上图可以看到,软件分层的发展是离不开特定技术的支撑。如上,从单层应用程序发展至二层,分离出数据库层,这必然是得以数据库技术的出现,使得软件中永久存储数据,以及高效的操作数据的任务可以由数据库来完成,而发展到三层,应用程序层被分为表述层和业务逻辑层,表述层负责业务逻辑的界面,而业务逻辑层负责处理特定的业务逻辑,而发展到四层的时候,业务逻辑层被多分出了持久化层,它负责将 业务逻辑中的对象持久化到关系数据库中!软件分层有二个特征,第一个是存在自上而下的依赖关系,上层会访问下层的接口。第二,为了保证每个层的相对独立性,每个层对外都公开接口而封装实现!在目前非常流行的MVC设计模式中,软件被分为 视图,模型和控制器这三个层次,模型代表软件的业务模型和业务数据,下图列出了MVC三个层次与我们上面所说的四个层次之间的关系!从上图可以看到模型对应了 业务逻辑层,持久化层和数据库层!Hibernate是JAVA持久化层的一种通用实现,它不与特定的业务领域相关,能把任一的JAVA应用与相关的数据库系统连接,也因此它是一种中间件!
?
在struts 学习之04 模型中,已经提到对象模型!一般说来实体域对象都需要存储在关系型数据据中,Hibernate就是一种将 内存中的对象持久化到关系型数据库中的工具,Hibernate的英文原意是冬眠,那么冬眠和持久化对象之间有什么关系呢,我们知道 对象只能存在于内存中,当程序运行起来后会创建对象,当程序运行结果那么这些对象就随之消失,我们更多时候是需要将这些对象永久保存到数据库中,那么形象的理解Hibernate就是将这些对象在关系型数据库中冬眠!其实我们知道,JAVA应用访问数据库最直接的方式就是直接访问JDBC API,它是由SUN公司制定的,在这个API中最主要的类和接口包括DriverManager,Connection,Statement,PreparedStatement,以及ResultSet! 其中DriverManager是具体的类,而其余的是接口,是由第三方的驱动程序包来实现,这也就是通常我们使用JDBC的时候要用到的第三方数据库厂商提供的JAR包!
用JDBC来开发系统的一个最大特点就是在程序代码中必须嵌入SQL语句,而SQL语句请问的是关系数据库中表的结构,这就使得我们的程序代码与关系型数据库紧紧的绑定在一起,如果之后关系型数据库发生变化就必须修改我们的 程序代码,使得我们程序代码没有独立性~这增加了维护软件的难度!
Hibernate的出现就是为了简化数据访问的编程以及提高数据访问代码的可性和可重用性!它采用的是ORM模式,它从业务逻辑层中分离出独立的持久化层,它负责建立域模型和关系数据库模型之间的映射,持久化向业务逻辑层公开了接口并且封装了具体实现细节,那么它如何进行域模型与关系型数据库模型的映射呢,实际具体的映射信息是在一个基于XML格式的对象关系映射文件中定义的!它们之间的对应类型如下:类 表???? 对象表的行??????? 属性表的列了解上面后,我们现在来结合前面的Struts创建一个Hibernate应用!Step1:新建一个WebProject,加入Struts,方法不清楚可以回头看看Struts!Step2:??? 加入Struts后,现在我们add? Hibernate Capabilities具体如下图:
完成后我们可以在fengyan包下,发现有二个文件!hibernate.cfg.xml以及HibernateSessionFactory.java。前面的xml文件当然就是配置了!暂时先不管这些。Step3:我们再在添加Struts组件 action form and jsp,这样我们就有了一个持久化类UserForm.java。Step4:现在建立持久化类与关系型数据库模型数据库映射的信息文件,UserForm.hbm.xml代码如下:
?xml?version=1.0?encoding=utf-8?!DOCTYPE?hibernate-mapping?PUBLIC?-//Hibernate/Hibernate?Mapping?DTD?3.0//EN/hib
文档评论(0)