Java对象持久化技术之Hibernate入门之一(1)(转)

  Hibernate是Java应用和关系数据库之间的桥梁,它负责Java对象和关系数据之间的映射.Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。在Java应用中使用Hibernate包含以下步骤。

(1)创建Hibernate的配置文件。

(2)创建持久化类。

(3)创建对象,关系映射文件。

(4)通过Hibernate API编写访问数据库的代码。

本章通过一个简单的例子helloapp应用,演示如何运用Hibernate来访问关系数据库.helloapp应用的功能非常简单:通过Hibernate保存,更新,删除,加载及查询客户对象。图1显示了Hibernate在helloapp应用中所处的位置。

   Java对象持久化技术之Hibernate入门之一(1)(转)> <br/> helloapp应用既能作为独立的Java程序运行,还能作为Java Web应用运行,该应用的源代码位于配套光盘的源代码里/chapter2 helloapp目录下。<br/> <br/> 2.1创建Hibernate的配置文件<br/> <br/> Hibernate从其配置文件中读取和数据库连接有关的信息,这个配置文件应该位于应用的类路径中.Hibernate的配置文件有两种形式:一种是XML格式的文件;还有一种是Java属性文件,采用“?值”的形式。<br/> <br/>下面介绍如何以Java属性文件的格式来创建Hibernate的配置文件。这种配置文件的默认文件名为冬眠。属性,例程2 - 1为示范代码。<br/> <br/>例程2 - 1冬眠。属性<br/> <br/>
  
  
  
  冬眠。方言=<br/> net.sf.hibernate.dialect。MySQLDialect <br/> hibernate.connection。driver_class=<br/> com.mysql.jdbc。司机<br/> hibernate.connection。url=jdbc: mysql: <br/>//localhost: 3306/SAMPLEDB <br/> hibernate.connection。用户名=<br/> hibernate.connection根源。密码=1234 <br/>冬眠。show_sql=true <br/> <br/> <br/>以上hibernate.properties文件包含了一系列属性及其属性值,Hibernate将根据这些属性来连接数据库,本例为连接MySQL数据库的配置代码。表2 - 1对以上冬眠。属性文件中的所有属性做了描述。<br/> <br/>表2 - 1 Hibernate配置文件的属性<br/> <br/> <br/>属性描述<br/>冬眠。方言指定数据库使用的SQL方言<br/> hibernate.connection。driver_class指定数据库的驱动程序<br/> hibernate.connection。url指定连接数据库<br/> hibernate.connection的url。用户名指定连接数据库的用户名<br/> hibernate.connection。密码指定连接数据库的口令<br/>冬眠。show_sql如果为真的,表示在程序运行时,会在控制台输出SQL语句,这有利于跟踪Hibernate的运行状态,默认为假的。在应用开发和测试阶段,可以把这个属性设为真,以便跟踪和调试应用程序,在应用发布阶段,应该把这个属性设为false,以便减少应用的输出信息,提高运行性能<br/> <br/> <br/> <br/> Hibernate能够访问多种关系数据库,如MySQL, Oracle和Sybase等。尽管多数关系数据库都支持标准的SQL语言,但是它们往往还有各自的SQL方言,就像不同地区的人既能说标准的普通话,还能讲各自的方言一样。<br/> <br/>冬眠。方言属性用于指定被访问数据库使用的SQL方言,当Hibernate生成SQL查询语句,或者使用本机对象标识符生成策略时,都会参考本地数据库的SQL方言。本书5章第(映射对象标识符)介绍了Hibernate的各种对象标识符生成策略。<br/> <br/>在Hibernate软件包的等目录下,有一个冬眠。属性文件,它提供了连接各种关系数据库的配置代码样例。<br/> 2.2创建持久化类<br/> <br/>持久化类是指其实例需要被Hibernate持久化到数据库中的类。持久化类通常都是域模型中的实体域类。持久化类符合JavaBean的规范,包含一些属性,以及与之对应的getXXX()和setXXX()方法。例程2 - 2定义了一个名为客户的持久化类。<br/> <br/>例程2 - 2客户。java <br/> <br/> <br/>
  
  
  
  <br/>包mypack; <br/>进口java.io.Serializable; <br/>进口java.sql.Date; <br/>进口java.sql.Timestamp; <br/> <br/>公共类客户实现Serializable <br/> {<br/>私人长id; <br/>私人字符串名称;<br/>私人字符串邮件;<br/>私人密码字符串;私人int电话;<br/> <br/>私人布尔结婚;<br/>私人字符串地址;<br/>私人char性;私人字符串描述;<br/> <br/>私人byte[]形象;<br/>私人生日日期;私人时间戳registeredTime <br/>, <br/> <br/>公共客户(){}<br/> <br/>公共长getId () <br/> {<br/>返回id; <br/>} <br/> <br/>公共空间setId(长id) <br/> {<br/>。id=id; <br/>} <br/> <br/>公共字符串getName () <br/> {<br/>返回名称;<br/>} <br/> <br/>公共空setName(字符串名称)<br/> {<br/> this.name=名字;<br/>} <br/> <br/>//此处省略电子邮件、密码和手机<br/>等属性的getXXX()和setXXX()方法<h2 class=Java对象持久化技术之Hibernate入门之一(1)(转)