Hibernate压缩文件结构
下载Hibernate压缩文档,下面为文件结构:
Hibernate3.jar:为Hibernate的核心jar包;
build.xml:重新打包配置文件
build.bat:运行在windows系统中打包;
build.sh:运行在Unix系统上打包;
doc:Hibernate API文档
eg:一个简单的实例
etc:Hibernate中需要使用的配置文件的模板
lib:Hibernate所需要使用的一些Jar包
src:Hibernate的源代码
test:测试代码(单元测试代码)
搭建Hibernate的使用环境:
1、 建立项目(我们这里建立Java Project)
例:hibernate_first
2、 引入hibernate所需要的jar包
利用User Library库引入jar包,以后项目如何需要使用这此jar包,只要引入这个库就可以了。
方法:
第一步: window→Preferences → Java → Build Path → User Libraries → “New” 按钮→ 然后输入库名→点击“OK”
第二步:加入所需要的
为项目引入hibernate JAR库
右键项目→Properties→Java Build Path→右边点击”Libraries”选项卡→“Add Library…”按钮→User Library→”next”按钮→选中我们刚刚建的”Hibernate3 JAR库”→Finish→OK
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>
<!-- 是否显示hibernate的SQL语句 -->
<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.xml或hiberante.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);