<?xml version="1.0" encoding="utf-8"?>映射文件中主要包括三个部份:类别名称与表格名称的映像、id属性与主键的映像、类别属性与表格字段的映像。
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!--类别名称与表格名称映像-->
<class name="onlyfun.caterpillar.User" table="user">
<!--id与主键映射-->
<id name="id" column="id" type="java.lang.Integer">
<generator class="native"/>
</id>
<!--类别属性与表格字段的映像-->
<property name="name" column="name" type="java.lang.String"/>
<property name="age" column="age" type="java.lang.Integer"/>
</class>
</hibernate-mapping>
package onlyfun.caterpillar;
public class User {
private Integer id;
private String name;
private Integer age;
// 必须要有一个预设的建构方法
// 以使得Hibernate可以使用Constructor.newInstance()建立对象
public User() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
+-------+------------------+------+------+----------+---------------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+-------+-----+----------+---------------------+ | id | int(11) | | PRI | NULL | auto_increment | | name | varchar(100) | | | | | | age | int(11) | YES | | NULL | | +-------+------------------+------+------+----------+---------------------+ |
Java数据型态 | Hibernate数据型态 | 标准SQL数据型态 |
byte、java.lang.Byte | byte | TINYINT |
short、java.lang.Short | short | SMALLINT |
int、java.lang.Integer | integer | INGEGER |
long、java.lang.Long | long | BIGINT |
float、java.lang.Float | float | FLOAT |
double、java.lang.Double | double | DOUBLE |
java.math.BigDecimal | big_decimal | NUMERIC |
char、java.lang.Character | character | CHAR(1) |
boolean、java.lang.Boolean | boolean | BIT |
java.lang.String | string | VARCHAR |
boolean、java.lang.Boolean | yes_no | CHAR(1)('Y'或'N') |
boolean、java.lang.Boolean | true_false | CHAR(1)('Y'或'N') |
java.util.Date、java.sql.Date | date | DATE |
java.util.Date、java.sql.Time | time | TIME |
java.util.Date、java.sql.Timestamp | timestamp | TIMESTAMP |
java.util.Calendar | calendar | TIMESTAMP |
java.util.Calendar | calendar_date | DATE |
byte[] | binary | VARBINARY、BLOB |
java.lang.String | text | CLOB |
java.io.Serializable | serializable | VARBINARY、BLOB |
java.sql.Clob | clob | CLOB |
java.sql.Blob | blob | BLOB |
java.lang.Class | class | VARCHAR |
java.util.Locale | locale | VARCHAR |
java.util.TimeZone | timezone | VARCHAR |
java.util.Currency | currency | VARCHAR |
<generator>设定主键的生成方式,可以设定"native"表示由Hibernate自动根据Dialect选择采用
identity、hilo、sequence等作为主键生成方式,也可以考虑采用uuid由Hibernate根据128位UUID算法(128-
bit UUID algorithm)生成16进位制数值,并编码为32位长度的字符串,还有其它的主键生成方式,可以参考官方手册的 Generator 说明。