hibernate 表結構與資料庫之間的對映檔案
阿新 • • 發佈:2020-11-22
實體類(User)
package com.hibernate.entity; import java.io.Serializable; public class User implements Serializable { private String uid; private String name; private String password; private Integer age; private Integer version; public String getUid() {對應的配置檔案(User.hbm.xml)return uid; } public void setUid(String uid) { this.uid = uid; } 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 Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getVersion() { return version; } public void setVersion(Integer version) { this.version = version; } }
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping > <!-- name -> 實體類 table -> 資料表 --> <class name="com.hibernate.entity.User" table="user"> <!-- id主鍵 --> <id name="uid" column="uid"> <!-- 主鍵生成模式 --> <generator class="uuid"></generator> </id> <!--樂觀鎖 防止更新丟失 位置必須在這--> <version name="version"></version> <property name="name" column="name"/> <property name="password" column="password"></property> <property name="age" column="age"></property> </class> </hibernate-mapping>generator 說明
本文講述Hibernate的generator屬性的意義。Generator屬性有7種class,本文簡略描述了這7種class的意義和用法。 Hibernate的Generator屬性有7種class,本文簡略描述了這7種class的意義和用法。 1、identity:用於MySql資料庫。特點:遞增 < id name="id" column="id"> < generator class="identity"/> < /id> 注:對於MySql資料庫使用遞增序列時需要在建表時對主鍵指定為auto_increment屬性。 2、sequence:用於Oracle資料庫 < id name="id" column="id"> < generator class="sequence"> < param name="sequence">序列名< /param> < /generator> < /id> 3、native:跨資料庫時使用,由底層方言產生。 Default.sequence為hibernate_sequence < id name="id" column="id"> < generator class="native"/> < /id> 注:使用native時Hibernate預設會去查詢Oracle中的hibernate_sequence序列。 如果Oracle中沒有該序列,連Oracle資料庫時會報錯。 4、hilo:通過高低位合成id,先建表hi_value,再建列next_value。必須要有初始值。 < id name="id" column="id"> < generator class="hilo"> < param name="table">high_val< /param> < param name="column">nextval< /param> < param name="max_lo">5< /param> < /generator> < /id> 5、sequencehilo:同過高低位合成id,建一個sequence序列,不用建表。 < id name="id" column="id"> < generator class="hilo"> < param name="sequence">high_val_seq< /param> < param name="max_lo">5< /param> < /generator> < /id> 6、assigned:使用者自定義id; < id name="id" column="id"> < generator class="assigned"/> < /id> 7、foreign:用於一對一關係共享主健時,兩id值一樣。實體類(User)