用hibernate将类映射到数据库

来源:互联网 发布:专门写日记的软件 编辑:程序博客网 时间:2024/05/21 17:07

用hibernate将类映射到数据库

<!--hibernate配置文件hibernate.cfg.xml-->
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
                                         "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>

 //SessionFactory是Hibernate的概念,对应一个数据存储源,如果有多个数据库,可以创建多个XML配置文件,也在你的程序中创建多 //个Configuration和SessionFactory对象。
    <session-factory>
        <property name="show_sql">false</property>
        <property name="use_outer_join">false</property>
        <property name="dialect">net.sf.hibernate.dialect.Oracle9Dialect</property>
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@111.11.1.7:1521:lab</property>
        <property name="connection.username">lab</property>
        <property name="connection.password">lab</property>
       
  <!-- Mapping files -->
  //下面以第一个mapping元素为例,它声明了Mlab.hbm.xml是一个映射文件,对应持久化类Mlab,它把普 //通的java类映射到数据库表
        <mapping resource="labform/common/hbm/Mlab.hbm.xml"/>
        <mapping resource="labform/common/hbm/Mlabsinfo.hbm.xml"/>
</hibernate-configuration>
<!--END 文件hibernate.cfg.xml-->
============================================================================================================
<!--映射文件Mlab.hbm.xml-->
//该文见保存于labform/common/hbm/目录下,包含了对象/关系映射所需的元数据

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
   
<hibernate-mapping>
<!--
    Created by the Middlegen Hibernate plugin

    http://boss.bekk.no/boss/middlegen/
    http://hibernate.sourceforge.net/
-->

<class
    name="labform.common.entity.Mlab" //Mlab是可持久化类
    table="MLAB"                                     //数据库表
>
 /**每个持久化类都需要一个标识属性,这个属性用来区分持久化对象:如果mlabA.getSeqid().equals(mlabB.getSeqid())结果是   * true的话,两个对象就是相同的。这个概念称为数据库标识。
  * 指定MLAB表的SEQID字段作为表的主键,存放生成的标识值
  */
    <id name="seqid" type="int" column="SEQID" >
        <generator class="sequence">
            <param name="sequence">MLAB_S</param>
        </generator>
    </id>

 <property
            name="roomid" //类中的属性变量
            column="ROOMID" //数据库表的字段,对应上一行的roomid
            type="java.lang.String"
            length="5"
    />

 <property
            name="score"
            column="SCORE"
            type="int"
            length="22"
    />

</class>
</hibernate-mapping>
<!--END 文件Mlab.hbm.xml-->
===========================================================================================================
<!--实体类 Mlab.java-->

package labform.common.entity;

public class Mlab implements Serializable {
 //seqid是一个特殊的属性,代表了这个类的数据库标识符(主键),
 private int seqid;
 private int score;
 private String roomid;
 
 //full constructor
 public Mlab(int seqid, int score, String roomid){
  this.seqid = seqid;
  this.score = score;
  this.roomid = roomid;
 }

 //default constructor
 public Mlab(){
 }

 public int getSeqid() {
        return this.seqid;
    }

    public void setSeqid(int seqid) {
        this.seqid = seqid;
    }

 public int getScore() {
        return this.score;
    }

    public void setScore(int score) {
        this.score = score;
    }

 public String getRoomid() {
        return this.roomid;
    }

    public void setRoomid(String roomid) {
        this.roomid = roomid;
    }
}
<END 实体类Mlab.java>