首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

第一個成功的 Hibernate 實例(二):Eclipse 生成 POJO 與映射、測試驗證

     編輯:Java 相關知識

Eclipse 環境配置與代碼生成

  1. 配置資料庫驅動(略)。
  2. 使用 MyEclipse Hibernate 工具反向工程生成 POJO 與 .hbm.xml。

生成文件範例

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
  "-//Hibernate/Hibernate Configuration DTD 2.0//EN"
  "https://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="connection.username">sa</property>
    <property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;databaseName=RMSDB</property>
    <property name="dialect">net.sf.hibernate.dialect.SQLServerDialect</property>
    <property name="connection.password">jckjdkmcj</property>
    <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
    <mapping resource="zy/pro/hrms/dao/Staffs.hbm.xml"/>
    <mapping resource="zy/pro/hrms/dao/Houses.hbm.xml"/>
    <mapping resource="zy/pro/hrms/dao/Menus.hbm.xml"/>
    <mapping resource="zy/pro/hrms/dao/Tables.hbm.xml"/>
    <mapping resource="zy/pro/hrms/dao/Customers.hbm.xml"/>
    <mapping resource="zy/pro/hrms/dao/Notice.hbm.xml"/>
  </session-factory>
</hibernate-configuration>

Houses.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
  "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
  "https://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping package="zy.pro.hrms.dao">
  <class name="Houses" table="Houses">
    <id name="hid" column="HID" type="java.lang.Integer">
      <generator class="increment"/>
    </id>
    <property name="alias" column="alias" type="java.lang.String"/>
    <property name="description" column="description" type="java.lang.String"/>
    <property name="capity" column="capity" type="java.lang.Integer" not-null="true"/>
  </class>
</hibernate-mapping>

Houses.java

package zy.pro.hrms.dao;
import java.io.Serializable;
public class Houses extends AbstractHouses implements Serializable {
    public Houses() {}
    public Houses(java.lang.Integer hid) { super(hid); }
    // 自定義代碼可加在此處
}

測試類 HouseTest

package zy.pro.hrms.test;
import net.sf.hibernate.*;
import zy.pro.hrms.util.HibernateSessionFactory;
import zy.pro.hrms.dao.Houses;

public class HouseTest {
    public static void main(String[] args) {
        try {
            Session session = HibernateSessionFactory.currentSession();
            Transaction tx = session.beginTransaction();
            for (int i = 0; i < 50; i++) {
                Houses h = new Houses();
                h.setAlias("dddd");
                h.setCapity(new Integer(4));
                session.save(h);
                tx.commit(); // 位置影響:每次循環提交 vs 循環外提交
            }
        } catch (Exception e) { e.printStackTrace(); }
    }
}

關鍵注意事項

  1. 事務提交位置:範例中置於循環內,每條記錄獨立事務;若移至循環外則為單一大事務,效能與回滾粒度不同。
  2. 主鍵生成策略:資料庫表定義 不使用 IDENTITY 自增,改由 Hibernate <generator class="increment"> 管理,保持可移植性。

運行環境

Windows 2000 + JBuilder X + SQL Server 2000。調試成功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved