Hibernate、Spring入门指南
前言:
本培训教程旨在引导初次接触Hibernate和Spring的技术人员,能够快速的掌握和运用这两种工具。
一、H ibernete应用
(一)Hinernate 概念与原理
1.什么是Hibernate
Hibernate是一个开放源代码的对象关系映射(Object Relational Mapping ,简称ORM)框架。ORM可以简单理解为Java对象和关系数据库中表的对应关系。Hibernate采用ORM技术,不仅仅管理Java类到数据库表的映射,还提供数据查询和获取数据的方法。相对于使用JDBC 和SQL 来手工操作数据库,Hibernate 可以大大减少操作数据库的工作量。
2.Hibernate工作原理
Hibernate工作原理,听起来好像是个很神秘的东东,其实并不神秘。Hibernate无非是一个中间件,它对JDBC进行了一次对象封装,负责把sql语句发送到数据库,而数据库返回来的信息hibernate接收之后直接生成一个对象传给java。下图显示了Hibernate的工作原理:
正如图中所示,Hibernate是利用数据库以及其他一些配置文件如Hibernate .properties ,
XML Mapping 等来为应用程序提供数据持久化服务的。通过Hibernate .properties或者Hibernate.cfg.xml,Hibernate可以获取所操作的数据库;通过XML Mapping,Hibernate可以获取要操作的数据库表的信息。
要操作一个数据库表,Hibernate首先是操纵JA V A对象,通过JA V A对象找到对应的XML Mapping文件,再通过XML Mapping 文件找到对应的数据库表,通过把对JA V A对象的操作转换为SQL对数据库表的操作,从而完成所谓ORM的全过程。
(二)Hinernate插件与安装
1.Hibernatetools:
作用:顾名思义,Hibernate工具,Hibernete必不可少的插件。
安装:解压缩hibernatetools-3.1.0.beta4.zip到磁盘,将生成的features和plugins包整个拷贝覆盖到eclipse下即可,打开eclipse可以看到。
2.Easysql:
作用:包含SQL编辑器和执行器,表格编辑器,数据导出工具。若不安装则eclipse→Window→Preferences中无Eclipsework菜单。
安装:解压缩easysql-1.0.6.zip到磁盘,将生成的plugins包整个拷贝覆盖到eclipse下即可。
3.Eclipsework:
作用:EclipseWork是一个代码生成插件。可以利用它从POJO's或数据库的表格中快速生成你所需要的代码。EclipseWork根据XML文件创建自定义的代码生成向导,然后依据配置的Velocity模板来生成代码。
安装步骤:
(1)解压缩eclipsework-0.1.zip到磁盘,打开eclipse→Help→SoftWare Updates→Find
and Install…
(2)→ Search for new features of install
(3)→New Local Site
(4)→选择eclipsework-0.1解压缩后的目录(包含features和plugins包以及site.xml
的包)
(5)→给site命名→Finish
(6)→勾上刚才的命名
(7)→Next
(8)→选择I accept the terms in the license agreement→ Next
(9)→Finish
(10)→Install→Yes重启eclipse
4.templates:
作用:顾名思义,起模板的作用。EclipseWork用该模板快速生成代码。
安装:解压缩templates-0.1.zip到磁盘,打开eclipse→Window→Preferences…→选择EclipseWork→wizards.xml选择解压出来的wizards.xml→Velocity Templatees’Folder选择解压出来的templates目录→勾选Open Editor when finish the wizard和Enable wizard’s cache→Apply→OK
打开templates视图:eclipse→ Window→Show View→Other…→EclipseWork→Templates
(三)Hibernate工程
1.HibernateProject工程创建步骤
(1)创建一个动态web工程
(2)给工程取名HibernateProject,工程如图
(3)导入需要的jar,把需要用到的jar包拷贝到工程的lib目录下,也就放到了工程
的classpath中,jar包如下图
(4)创建需要的包,如下图所示
2.配置和生成Hibernate的相关文件
第一步:配置Hibernate Configuration File(.cfg.xml)添加:选择工程,点右键→New→Other…
→Hibernate→Hibernate Configuarion File
Next
→Next
→选中Database dialect →选择Driver class →选择或填写Connection URL为相应数据库的URL→填写Default Schema(如DWSYS)→填写Username和Password(数据库用户与密码)→勾上Create a console configuration →Finish,生成配置文件如图
第二步:设置反向工程(.reveng.xml)
添加工具栏的hibernate的图标边的向下三角
hibernate.cfg.xml中配置的信息有:数据库驱动程序名、驱动程序URL、数据库名、数据库用户名及密码、表模式名等。
→Hibernate Code Generation…
→New一个新的Hibernate Code Generation,
Name命名自取,在Main中Console configuration选择上面配置的→Output directory选择上面配置的hibernate.cfg.xml存放的路径→勾选Reverse engineer from JDBC Connection→在Package中选择数据库表映射对象生成的路径(如cn.domain)→点击reveng.xml后的
Setup…→Create new…
→选中parent folder→Next
→Refresh→选择需要反向功能的表(一次可以多选)→Include…
→Finish
code(.java)、Generate mappings(hbm.xml)和Generate hibernate configuration(hibernate.cfg.xml)
→Run→刷新工程能看到生成的java类,hibernate.cfg.xml中的内容也有新的变化。
hibernate.reveng.xml配置了用到数据库中的哪些表;映射文件(这里的SmAnnounce.hbm.xml 和SmUsers.hbm.xml)配置了数据库表和java类之间的关联;反向类(这里的SmAnnounce.java 和SmUsers.java)是可以看作一个简单的VO类。
3.生成POJO:
POJO:Plain Ordinary Java Object无格式普通Java对象,可以简单的理解为一个不包含
逻辑代码的值对象(Value Object 简称VO)。
1、生成HibernateUtil
Templates→Persistence->Hibernate->1 –Hibernate Util –ThreadLocal→生成
HibernateUtil.java文件