当前位置:文档之家› Hibernate学习入门教程

Hibernate学习入门教程

Hibernate学习入门教程开发环境搭建[日期:2015-08-11] 来源:Linux社区作者:doctorJoe [字体:大中小]其实一两个月前就在了解Hibernate方面的知识了,但一直以来,都没有好好的总结,而且一直使用的是myeclipse,感觉有些傻瓜式的操作就可以搭建起Hibernate的开发环境,但这样一点都不好,没有理解到Hibernate到底是怎么配置的,所以你今天特使用Eclipse来一步一步搭建Hibernate的开发环境,下面,正式进入正题。

在Hibernate中开启日志/Linux/2015-07/120499.htmHibernate+JUnit测试实体类生成数据库表/Linux/2015-07/120161. htmHibernate整体理解/Linux/2014-07/104405.htmHibernate的映射机制/Linux/2014-12/110265.htm 新建一个web项目,名字就随便吧,你喜欢什么名字就什么吧,这是我的截图。

引入hibernate的依赖jar包,我使用的是hibernate-release-4.3.10.Final,下载好后解压,打开压缩包下的lib目录下的require文件夹,这是hibernate的所以来的必须的jar包,接下来,在刚才新建的项目里新建一个libs文件夹,将刚才的所说的jar包copy进去,另外,由于我们需要连接MySQL数据库以及使用JUnit测试,将所需的mysql-connector-java-5.0.8-bin.jar和junit-4.5.jar两个jar包引用进去,关于这些jar包,可以在网上搜索。

接下来,就是把这些jar 包添加到编译环境中去,选中libs下的jar包,右击选择Build Path –>Add to Build Path,这样就把依赖jar包成功添加进去了。

继续往下,我们需要配置最重要的hibernate配置文件hibernate.cfg.xml以及进行日志处理的log4j.properties属性文件:打开上一步解压后的hibernate文件夹,打开project—>etc文件夹,将该文件夹下的hibernate.cfg.xml和log4j.properties文件拷贝到项目的src文件夹下,打开hibernate.cfg.xml文件,将session-factory标签中的内容替换成如下的内容:<s e s s i o n-f a c t o r y> <!--配置m y s q l数据库的连接参数--> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!--驱动程序名--> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</propert y><!--数据库名称--> <property name="hibernate.connection.url">jdbc:mysql:///hibernatedemo</property><!--用户名--> <property name="ername">root</property><!--密码--> <property name="hibernate.connection.password">yzp140103</property></session-factory>这样就配置好了。

接下来,要做的就是做开发测试了:在项目的src目录下新建一个实体类包com.joe.entity,在该包下新建一个实体类Student,代码如下:package com.joe.entity;import java.io.Serializable;p u b l i c c l a s s S t u d e n t i m p l e m e n t s S e r i a l i z a b l e{/****/ pr i va t e s ta ti c f ina l l o ng s er i a lV e r s ion U ID=5548279324472937805L;p r i v a t e i n t i d;p r i v a t e S t r i n g n a m e;p r i v a t e i n t a g e;/***申明无参构造函数*/ p u b l i c S t u d e n t(){} p u b l i c i n t g e t I d(){r e t u r n i d;} p u b l i c v o i d s e t I d(i n t i d){t h i s.i d=i d;} p u b l i c S t r i n g g e t N a m e(){r e t u r n n a m e;} p u b l i c v o i d s e t N a m e(S t r i n g n a m e){t h i s.n a m e=n a m e;} p u b l i c i n t g e t A g e(){r e t u r n a g e;} p u b l i c v o i d s e t A g e(i n t a g e){t h i s.a g e=a g e; }}对了,说明下,必须申明一个无参的构造函数,这是必须的哦!关键问题来了,我们不是说hibernate是做数据持久化的吗?那说百了就是要和数据库打交道呗,对于Student类,怎么和数据库关联呢,那我们就要说说这对象关系映射文件了Xxx.hbm. xml文件了,其中的Xxx是实体类的名称,那我们的Student.hbm.xml文件的内容就是:<?x m l v e r s i o n="1.0"?> <!DOCTYPE hibernate-mapping SYSTEM "/dtd/hibernate-mapping-3.0.d t d"><h i b e r n a t e-m a p p i n g> <!-- 一个class标签对应一个实体类,name属性指定实体类名称,table属性指定关联的数据库表--><c l a s s n a m e="c o m.j o e.e n t i t y.S t u d e n t"t a b l e="s t u_t a b"><!--主键--><i d n a m e="i d"c o l u m n="s t u_i d"><!--主键的生成策略--><g e n e r a t o r c l a s s="n a t i v e"></g e n e r a t o r></i d> <!-- 其他属性,name对应实体类的属性,column对应关系型数据库表的列--><p r o p e r t y n a m e="n a m e"c o l u m n="s t u_n a m e"></p r o p e r t y><p r o p e r t y n a m e="a g e"c o l u m n="s t u_a g e"></p r o p e r t y></c l a s s> </hibernate-mapping>将该文件同样添加到com.joe.entity包下,这样就行了吗?答案当然是否定的,我们还要将这个实体类注册到hibernate.cfg.xml文件中,在session-factory标签下面最后一个property标签后添加:<!--添加S t u d e n t.h b m.x m l映射文件--> <mapping resource="com/joe/entity/Student.hbm.xml"/>再往下走,我们来测试一下,在项目下新建一个资源文件夹test,再在test文件下新建测试包com.joe.test,在该包下新建一个StudentTest.java类,并书写如下代码:package com.joe.test;i m p o r t o r g.h i b e r n a t e.S e s s i o n;i m p o r t o r g.h i b e r n a t e.S e s s i o n F a c t o r y;i m p o r t o r g.h i b e r n a t e.T r a n s a c t i o n;i m p o r t o r g.h i b e r n a t e.b o o t.r e g i s t r y.S t a n d a r d S e r v i c e R e g i s t r y B u i l d e r;i m p o r t o r g.h i b e r n a t e.c f g.C o n f i g u r a t i o n;i m p o r t o r g.h i b e r n a t e.s e r v i c e.S e r v i c e R e g i s t r y;i m p o r t o r g.h i b e r n a t e.t o o l.h b m2d d l.S c h e m a E x p o r t; import org.junit.Test;import com.joe.entity.Student;p u b l i c c l a s s S t u d e n t T e s t{/** *@T e s t是j u n i t4测试的注解方式申明*根据对象关系映射文件生成D D L*/@T e s t p u b l i c v o i d c r e a t e T a b l e(){C o n f i g u r a t i o n c f g=n e w C o n f i g u r a t i o n().c o n f i g u r e();S c h e m a E x p o r t s e=n e w S c h e m a E x p o r t(c f g);s e.c r e a t e(t r u e,t r u e);} }当然,也可以使用如下的方式生成DDL,在hibernate.cfg.xml问价中新增:<!--生成D D L的配置--> <property name="hibernamr.hbm2ddl.auto">create |update</property>最后,执行StudentTest.java类,选择Run As—>JUnit Test,在控制台可以看到如下的信息,那就证明成功了:当然,也可以打开MySQL ,进一步验证。

相关主题