前言:一直习惯用MyEclipse自动生成Hibernate,但是对手动配置一直不甚了解,都不好意思说自己是搞java的。所以赶紧复习了一下手动配置,并记录在此,以便常回来看看!
第一步:搭建环境
在Hibernate主页下载hibernate-distribution-3.3.2.GA-dist.zip(这个很难找,一定要耐心!),解压后把根目录的hibernate3.jar和required文件夹里的所有的包、数据库驱动JAR,复制到WEB-INFO的lib里。
然后在项目里build-path刚才复制过来的JAR。
第二步:构建映射
首先创建与数据库表字段对应的实体类(持久化类),必须实现java.io.Serializable接口
然后在所有实体类的同一个包下,创建映射文件,如下:
Hibernate配置文件XXX.cfg.xml示例:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.hibernate.Hebei" table="HEBEI" schema="ORCL">
<!--name表示实体类全名,table表示对应表名-->
<id name="postcode" type="java.lang.String">
<column name="POSTCODE" length="10" />
<!--id及其子元素column表示实体类的属性postcode对应表中的主键POSTCODE-->
<generator class="native" />
<!--用于指定主键的生成策略,有以下值可选:
//1.native:由Hibernate根据数据库自行判断生成哪种策略。
//2.increment:对类型为long、short、int的主键,以自增长的方式生成主键的值,主键将每次递增1。
//3.identity:对于SQL Server、DB2、MySQL等支持标识列的数据库,可使主键自增长,但需把主键设为标识列。
//4.sequence:对于Oracle、DB2等支持序列的数据库,可实现主键自增长,需要通过param传入序列名字。
//5.assigned:主键由应用程序负责生成,无需Hibernate参与。 -->
</id>
<property name="area" type="java.lang.String">
<!-- 定义实体类中的属性和数据库表中的字段的对应关系 -->
<column name="AREA" length="100" not-null="true">
<comment>考区</comment>
</column>
</property>
</class>
</hibernate-mapping>
第三步:配置运行环境
在src中创建Hibernate的配置文件XXX.cfg.xml,如下:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect"><!-- 用于配置使用的数据库类型 -->
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:orcl
</property>
<property name="connection.username">system</property>
<property name="connection.password">orcl</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">本机</property>
<property name="show_sql">true</property><!-- 是否显式sql语句,如过true就会在控制台显式sql语句 -->
<mapping resource="com/hibernate/Hebei.hbm.xml" /><!-- 声明映射文件的位置 -->
</session-factory>
</hibernate-configuration>