您的位置:首页 > 编程语言 > Java开发

新手上路之Hibernate(二):基本映射以及一些原则与主键生成策略

2015-02-26 15:45 459 查看
原文链接:http://blog.csdn.net/aboy123/article/details/10222675

一、什么是映射

在上一篇文章中
新手上路之Hibernate:第一个Hibernate例子,通过一个例子了解了什么是Hibernate。而其中最重要的就是通过User.hbm.xml来配置映射。这里所说的映射就是对象关系映射:将对象数据保存到数据库中,同时可以将数据库数据读入对象中,开发人员只对对象进行操作就可以完成对数据库数据的操作。

二、什么是基本映射

知道了什么是映射,那么我们先来看一下最基本的映射关系——基本映射,即根据表结构创建相应实体类

例如:还是以Mysql数据库为例,进行说明。有如下一张表:



建立相应的实体类:User

public class User {
private String id;
private String username;

public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String userName) {
this.username = userName;
}
}


对于Hibernate来说,最重要的就是配置文件,即还需要一个User.hbm.xml文件
 

<hibernate-mapping>
<class name="com.example.hibernate.User" table="t_user">
<id name="id">
<generator class="uuid"/>
</id>
<property name="username"/>

</class>
</hibernate-mapping>
其他部分的代码参照上一篇文章即可。

三、建立User实体类的一些原则

       1、实现无参的默认的构造函数

       2、提供一个标识

       3、建议不要使用fianl修饰实体类

       4、建议为实体类生成setter和getter方法

对于第3条建议,如果使用了fianl关键字,那么延迟加载(load)将会无效。具体含义将会在下一篇文章中给出实例。

四、HIbernate主键生成策略

在上面User.hbm.xml配置文件中有一个标签:<generator>。它表示的是主键生成策略。主键生成策略必须配置,用来为该持久化类的实例生成唯一的标识。它有如下几种策略

    uuid: 用一个128-bit的UUID算法生成字符串类型的标识符,这在一个网络中是唯一的(使用了IP地址),UUID被编码为一个32位16进制数字的字符串,它的生成是由Hibernate生成,一般不会重复UUID包含:IP地址,JVM的启动时间,系统时间和一个计算器值。

    identity:MySql数据库中自增长

    Sequence:Oracle数据库自增长

    native:根据底层数据库能力选择identity、sequence中的一个。

    assigned:手动分配主键.<generator>没有指定时的默认生成策略

    foreign:使用另外一个相关联的对象的标示符。通常和<one-to-one>配合使用

五、总结

概括一下Hibernate的基本映射就是:
实体类——对应了——数据库中表、实体类中的属性——对应了——表中字段。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate java web
相关文章推荐