值得关注的持久化技术:hibernate

发表于:2007-07-14来源:作者:点击数: 标签:
1.简述: 学习一项新的技术要花时间的,它会不会把时间在使用它之后补回来是应该关注的问题:我们可以用关键字:"jdo ejb cmp hibernate"在google上找一找对他们的评论文章,其中只要使用过hibernate的人都对它很推崇(我也是). 我们的对象模型可以被hibernate
 1.简述:
  学习一项新的技术要花时间的,它会不会把时间在使用它之后补回来是应该关注的问题:我们可以用关键字:"jdo ejb cmp hibernate"在google上找一找对他们的评论文章,其中只要使用过hibernate的人都对它很推崇(我也是).
  
  我们的对象模型可以被hibernate很好的利用,下图中的Persistent Object是简单的业务实体对象(要被持久化的对象)。通过hibernate被透明的持久化到数据库中。下面的例子会说明一切。
  
. 

  2.一个简单的例子
  我们开发一个Person类:
  
. 

  可以想象数据表是下面的样子:
  
  表person
  
. 

  要通过hibernate实现它要经过以下步骤:
  
  主要是先根据对象模型编写简单的业务实体类(简单的bean规范类,即有get,set方法的类,可以用jac等工具生成),再用xml映射文件描述其映射数据库的方式(很easy),最后就可以通过很少的hibernate api写测试类对其进行持久化操作。//小新技术网www.xker.com
  
  2.1 写Person类(Persistent Object),它和普通的类没甚末不同,但注意它应该复合bean的规范,为每个属性提供get,set方法:
  
  h.Person
  //
  // WARNING: this file has been automatically generated by JAC
  // DO NOT MODIFY unless you know what you are doing
  //
  
  package h;
  
  public class Person {
  
  String name;
  
  /**
  Sets the value of field name.
  @param name value of field name
  */
  
  public void setName(String value) {
    this.name=value;
  }
  
  /**
  Gets the value of field name.
  @return value of field name
  */
  
  public String getName() {
    return name;
  }
  
  String address;
  
  /**
  Sets the value of field address.
  @param address value of field address
  */
  
  public void setAddress(String value) {
    this.address=value;
  }
  
  /**
  Gets the value of field address.
  @return value of field address
  */
  
  public String getAddress() {
    return address;
  }
  
  String id;
  
  /**
  Sets the value of field id.
  @param id value of field id
  */
  
  public void setId(String value) {
    this.id=value;
  }
  
  /**
  Gets the value of field id.
  @return value of field id
  */
  
  public String getId() {
    return id;
  }
  }
  2.2 填写对象-关系映射xml文件,不用担心它的复杂程度,我们可以抄嘛:和所有o-r 映射工具一样都要写这种映射文件。
  
  Person.hbm.xml 建议命名为:"类名"+"hbm.xml" 并且放置在Person类相同包目录下
  <?xml version="1.0" encoding="GB2312"?>
  <!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
  <hibernate-mapping>
  
   <class name="h.Person">
     <!--hibernate为我们生成主键id-->

原文转自:http://www.ltesting.net