注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

韬光养晦

路漫漫其修远兮,吾将上下而求索

 
 
 

日志

 
 

开始hibernate八步走  

2008-04-13 10:55:49|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

以下以一个简单的例子来说明开发一个使用hibernate技术的应用。该例子讲一个User对象的与关系数据表对应,应用hibernate将对象持久化到数据库中。开发环境为 jdk 5.0 , MyEclipse  6.0.1 GA ,hibernate3.2,mysql 5.0,windows xp professional sp2。

第一步 :创建一个java project。

不妨起名为hibernate _ simple

第二步:引入hibernate依赖的库以及mysal数据库驱动。

我们采用user Liberary的方式,在MyEclipse中具体操作如下: windows->properties->java->build path->user libraries->new ->add jars.不妨在new时将其命名为HIBERNATE3。 然后选中:%hibernate path% \lib 下的所有jar包、 hibernate根下的hibernate3.jar包、还有mysql的jdbc驱动jar包。

以后凡是创建一个新的hibernate项目,要引入该user Library,只要在新项目上右击,选择Properties->Java Build Path->Libraries->Add Liberary->User Library ,然后选择我们刚才创建的HIBERNATE3库。

第三步:创建hibernate的配置文件: hibernate.cfg.xml

Hibernate.cfg.xml 的样例模板可以在 %hibernate path%\etc 中找到。将其加入到项目的src目录下,并修改如下:

<! DOCTYPE  hibernate-configuration  PUBLIC

  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >

< hibernate-configuration >

  < session-factory  >

    < property  name = "hibernate.connection.url" > jdbc:mysql://127.0.0.1/hibernate_simple </ property >

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

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

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

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

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

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

  </ session-factory >

</ hibernate-configuration >

其中各项含义显而易见。另外在上面文件中配置哪些项有意义以及不同的数据库应当如何配置,在 %hibernate path%\etc下的hibernate.properties文件中有说明。

第四步:定义实体类User。

代码如下:

package  com.hibernate.lanvis;

import  java.util.Date;

public   class  User {

  private  String  id ;

  private  String  name ;

  private  String  password ;

  private  Date  createTime ;

  private  Date  expireTime ;

  public  String getId() {

    return   id ;

  }

  public   void  setId(String id) {

    this . id  = id;

  }

  public  String getName() {

    return   name ;

  }

  public   void  setName(String name) {

    this . name  = name;

  }

  public  String getPassword() {

    return   password ;

  }

  public   void  setPassword(String password) {

    this . password  = password;

  }

  public  D ate  getCreateTime() {  

    return  createTime ;

  }

  public   void  setCreateTime(Date createTime) {

    this . createTime  = createTime;

  }

  public  Date getExpireTime() {

    return   expireTime ;

  }

  public   void  setExpireTime(Date expireTime) {

    this . expireTime  = expireTime;

  }

}

注意该类一定要有标准get\set方法。

第五步:定义User对象的映射文件User.hbm .xml

***. hbm.xml 的样例模板可在 % hibernate path%\eg\org\hibernate\auction目录下找到,将其加入到User类所在的packge中,这里加到 com.hibernate.lanvis 下。修改如下:

<? xml  version = "1.0" ?>

<! DOCTYPE  hibernate-mapping  PUBLIC 

  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

< hibernate-mapping    package = "com.hibernate.lanvis" >

  < class  name = "com.hibernate.lanvis.User" >

    < id  name = "id" >

      < generator  class = "uuid" />

    </ id >

    < property  name = "name" />

    < property  name = "password" />

    < property  name = "createTime" />

    < property  name = "expireTime" />

  </ class >

</ hibernate-mapping >

其中各项的含义以及如何配置,在hibernate doc中的 Basic O/R Mapping 章节中有详细说明。

第六步:将映射文件加入到hibernate中,即加入hibernate.cfg.xml文件中。

上面第三步中的代码中的:

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

实现了这一步。

第七步:创建数据库表,利用hibernate的工具类,将实体类映射导出到数据库。

在数据库中创建数据库hibernate_simple。

这里我们创建一个ExportDB类,来实现并演示。代码如下:

package  com.hibernate.lanvis;

import  org.hibernate.cfg.Configuration;

import  org.hibernate.tool.hbm2ddl.SchemaExport;

public   class  ExportDB {

  public   static   void  main(String[] argv){

    //读取配置文件

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

   

    //创建SchemaExport对象

    SchemaExport export= new  SchemaExport(cfg);

   

    //创建数据库表

    export.create( true , true );

  }

}

运行该程序即可发现数据库中多了一个user表,可以查看该表的描述(desc user),发现描述如下:

+------------+--------------+------+-----+---------+-------+

| Field      | Type         | Null | Key | Default | Extra |

+------------+--------------+------+-----+---------+-------+

| id         | varchar(255) | NO   | PRI |         |       |

| name       | varchar(255) | YES  |     | NULL    |       |

| password   | varchar(255) | YES  |     | NULL    |       |

| createTime | datetime     | YES  |     | NULL    |       |

| expireTime | datetime     | YES  |     | NULL    |       |

+------------+--------------+------+-----+---------+-------+

其实表名、列名以及更详细的要求可以在User .hbm.xml 中进行配置。

第八步:开发应用程序。

更为详细的如何开发,应当参照hibernate API以及样例程序进行。常用的对象有Configuration,SessionFactory,Session,Transaction,Query等等。

注: 为了方便调试,可将 %hibernate path%\etc\ log4j .properties 文件拷入到src根目录下。在运行第七步的时候可能就需要这样做。

  评论这张
 
阅读(358)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018