002—第一个Hibernate示例(一)

Hibernate压缩文件结构

下载Hibernate压缩文档,下面为文件结构:

 



 

Hibernate3.jar:为Hibernate的核心jar包;

build.xml:重新打包配置文件

build.bat:运行在windows系统中打包;

build.sh:运行在Unix系统上打包;

docHibernate API文档

eg:一个简单的实例

etcHibernate中需要使用的配置文件的模板

libHibernate所需要使用的一些Jar

srcHibernate的源代码

test:测试代码(单元测试代码)

 

搭建Hibernate的使用环境:

1、   建立项目(我们这里建立Java Project)

例:hibernate_first

2、   引入hibernate所需要的jar

利用User Library库引入jar包,以后项目如何需要使用这此jar包,只要引入这个库就可以了。

方法:

第一步: windowPreferences Java Build Path User Libraries “New” 按钮→ 然后输入库名→点击“OK

 



 第二步:加入所需要的

JAR 包:点击“ Hibernate3 ”项→“ Add JARs …”按钮→在弹出的对话框选择需要的 JAR (hibernate3.jar lib 目录下的所有 JAR ) ,还有数据库的 JDBC 驱动 ( 例如 Mysql 驱动

 
)

 

为项目引入hibernate JAR

右键项目→PropertiesJava Build Path→右边点击”Libraries”选项卡→“Add Library…”按钮→User Library”next”按钮→选中我们刚刚建的”Hibernate3 JARFinishOK

3、   创建Hibernate的配置文件(hibernate.cfg.xml)

Hibernate支持两个格式的配置文件:hibernate.properties(不常用)hibernate.cfg.xml(建意使用)

hibernate.cfg.xml文件复制到ClassPath的根下(src目录下)(hibernate.cfg.xml位于hibernate_home/etc目录下)

<session-factory>

        <!--

            具体的配置信息可参见hibernate_home/etc/hibernate.properties相关配置项

            如何要移植数据时,只要将下面数据库信息修改就可以了。

         -->

        <!-- 配置mysql数据库连接串 -->

        <property name="hibernate.connection.url">jdbc:mysql://localhost:3036/hibernate_first</property>

        <!-- 配置mysql数据库jdbc驱动 -->

        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

        <!-- 配置mysql数据库连接用户名 -->

        <property name="hibernate.connection.username">root</property>

        <!-- 配置mysql数据库连接用户密码 -->

        <property name="hibernate.connection.password">root</property>

        <!--配置数据库适配器(使用何中数据库)-->

        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

         <!-- 是否显示hibernateSQL语句 -->

        <property name="hibernate.show_sql">true</property>

 

<!-- 配置实体类映射文件 位于property之后

            映射文件要求为完整路径,目录之前使用/隔开

-->

       <mapping resource="com/wjt276/hibernate/User.hbm.xml"/>

 

</session-factory>

4、   创建日志的配置文件(log4j.properties),为了便于调试最好加入log4j配置文件

将模板文件复制到ClassPath根下(src目录下)

为了不需要多于的提示信息,可以将此配置文件中一些配置项取消了。但要保留log4j.rootLogger=warn, stdout

5、   定义实体类

(Hibernate先定义实体类,再生成表)

例如:User实体类

6、   定义User类的映射文件(重要、关键)—User.hbm.xml

映射文件可位于任何位置,但一般位于实体类同一目录下。

映射文件是描述实体类和实体类的属性的。

源数据:描述实体类及实体类属性之间的关系的。

映射类标签:<classs></class>

<!--

        class标签 实体类映射到数据表

        * name属性:实体类的完整路径

        * table属性:实体类映射到数据库中的表名,如果省略,则为实体类的类名称

    -->

    <class name="com.wjt276.hibernate.User" table="t_user">

        <!-- 映射数据库主键 映射到数据表中的字段名默认为类属性名,但可以利用column重新指定-->

        <id name="id" column="id">

            <!-- generator设置主键生成策略

                uuid:一万年内生成唯一的字符串

            -->

            <generator class="uuid"/>

        </id>

        <!-- property 映射普通属性  映射到数据表中的字段名默认为类属性名,但可以利用column重新指定-->

        <property name="name" column="name"/>

        <property name="password"/>

        <property name="createTime"/><!-- Hibernate会自动根据实体类属性类型生成数据库表中字段类型 -->

        <property name="expireTime"/>

    </class>

7、   User.hbm.xml文件加入到hibernate配置文件中(hibernate.cfg.xml),因为hibernate并不知道这个文件的存在。

       <!-- 配置实体类映射文件 位于property之后

            映射文件要求为完整路径,目录之前使用/隔开

-->

       <mapping resource="com/wjt276/hibernate/User.hbm.xml"/>

------2009/10/16--------------

8、   使用hibernate工具类将对象模型生成关系模型(hbm to ddl)

(也就是实体类生成数据库中的表),完整代码如下:

package com.wjt276.hibernate;

 

import org.hibernate.cfg.Configuration;

import org.hibernate.tool.hbm2ddl.SchemaExport;

 

/**

 * Hibernate工具<br/>

 * 将对象模型生成关系模型(将对象生成数据库中的表)

 * hbm映射文件转换成DDL

 * 生成数据表之前要求已经存在数据库

 * 注:这个工具类建立好后,以后就不用建立了。以后直接Copy来用。

 * @author wjt276

 * @version 1.0 2009/10/16

 */

public class ExportDB {

    public static void main(String[] args){

        /*

         * org.hibernate.cfg.Configuration类的作用:

         * 读取hibernate配置文件(hibernate.cfg.xmlhiberante.properties).

         * new Configuration()默认是读取hibernate.properties

         * 所以使用new Configuration().configure();来读取hibernate.cfg.xml配置文件

         */

        Configuration cfg = new Configuration().configure();

       

        /*

         * org.hibernate.tool.hbm2ddl.SchemaExport工具类:

         * 需要传入Configuration参数

         * 此工具类可以将类导出生成数据库表

         */

        SchemaExport export = new SchemaExport(cfg);