测试第一个JunitTest所需要的类库
将hibernate.cfg.xml文件放到src目录下,那么在进行JUnit测试的时候,不需要制定hibernate.cfg.xml文件的路径
通过Configuration config=new Configuration().configure();就可以让Eclipse自动找到找个文件。
表1 Hibernate标识生成策略
标识符生成器
| 描述 |
increment | 适用于代理主键。 由Hibernate自动以递增方式生成。 |
identity | 适用于代理主键。 由底层数据库生成标识符。 |
sequence | 适用于代理主键。 Hibernate根据底层数据库的序列生成标识符, 这要求底层数据库支持序列。 |
hilo | 适用于代理主键。 Hibernate分局high/low算法生成标识符。 |
seqhilo | 适用于代理主键。 使用一个高/低位算法来高效的生成long, short或者int类型的标识符。 |
native | 适用于代理主键。 根据底层数据库对自动生成标识符的方式, 自动选择identity、sequence或hilo。 |
uuid.hex | 适用于代理主键。 Hibernate采用128位的UUID算法生成标识符。 |
uuid.string
| 适用于代理主键。 UUID被编码成一个16字符长的字符串。 |
assigned | 适用于自然主键。由Java应用程序负责生成标识符。 |
foreign | 适用于代理主键。使用另外一个相关联的对象的标识符。 |
Hibernate映射类型
在对象/关系映射文件中,Hibernate采用映射类型作为Java类型和SQL类型的桥梁。Hibernate映射类型分为2种:内置映射类型和自定义映射类型。
1、内置映射类型
Hibernate对所有的Java原生类型、常用的Java类型如String、Date等都定义了内置的映射类型。表2列出了Hibernate映射类型、对应的Java类型以及对应的标准SQL类型。
表2 Hibernate内置映射类型
Hibernate映射类型 | Java类型 | 标准SQL类型 | 大小 |
integer/int | java.lang.Integer/int | INTEGER | 4字节 |
long | java.lang.Long/long | BIGINT | 8字节 |
short | java.lang.Short/short | SMALLINT | 2字节 |
byte | java.lang.Byte/byte | TINYINT | 1字节 |
float | java.lang.Float/float | FLOAT | 4字节 |
double | java.lang.Double/double | DOUBLE | 8字节 |
big_decimal | java.math.BigDecimal | NUMERIC | ? |
character | java.lang.Character/ java.lang.String/char | CHAR(1) | 定长字符 |
string | java.lang.String | VARCHAR | 变长字符 |
boolean/ yes_no/true_false | java.lang.Boolean/Boolean | BIT | 布尔类型 |
date | java.util.Date/ java.sql.Date | DATE | 日期 |
timestamp | java.util.Date/ java.util.Timestamp | TIMESTAMP | 日期 |
calendar | java.util.Calendar | TIMESTAMP | 日期 |
calendar_date | java.util.Calendar | DATE | 日期 |
binary | byte[] | BLOB
| BLOB |
text | java.lang.String | TEXT | CLOB |
serializable | 实现java.io. Serializablej接口 的任意Java类 | BLOB | BLOB |
clob | java.sql.Clob | CLOB | CLOB |
blob | java.sql.Blob | BLOB | BLOB |
class | java.lang.Class | VARCHAR | 定长字符 |
locale | java.util.Locale | VARCHAR | 定长字符 |
timezone | java.util.TimeZone | VARCHAR | 定长字符 |
currency | java.util.Currency | VARCHAR | 定长字符 |