首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Hibernate——(三)主键生成方式

2013-11-04 
Hibernate——(3)主键生成方式一、Hibernate中常用的主键生成方式有如下几种:1)identity: 用于自动生成主键方

Hibernate——(3)主键生成方式

一、Hibernate中常用的主键生成方式有如下几种:

1)identity: 用于自动生成主键方式,除了 Oracle 不支持,其他数据库一般都支持(较常用)
2)sequence: Oracle 中使用,用序列生成 ID 主键
3)native: 主键生成方式如果是 native,那就看配置文件 hibernate.cfg.xml 中方言<property name="dialect">是什么,如果方言是 Mysql,相当于 identity,如果方言是 Oracle,相当于 sequence
4)increment: 不常用
5)assigned: 不常用,手动生成 id

二、案例:5种主键生成方式演示

1、项目结构

Hibernate——(三)主键生成方式

2、新建Foo:用于测试的POJO


8、查询数据库

Hibernate——(三)主键生成方式

sequence:Oracle数据库常用

9、创建Oracle数据库表并创建生成ID的sequence

Hibernate——(三)主键生成方式

10、修改配置文件hibernate.cfg.xml :修改成Oracle数据库的


13、查看数据库

Hibernate——(三)主键生成方式

native :native根据配置文件的方言选择是identity还是squence


新建数据库表t_foo时不需要写“auto_increment"

Hibernate——(三)主键生成方式

插入数据时,同样也不需要指定ID

Hibernate——(三)主键生成方式

查看控制台,Hibernate执行了2条SQL

Hibernate——(三)主键生成方式

increment生成主键的方式是先“select max(t_id) from t_foo",从t_foo中找到最大的id,之后将max(t_id)加1,这样就保证了主键唯一。但是这样也有风险,当并发访问时会有风险。不建议使用。

assigned: 没有任何自动方式,需要用户自己指定,使用也较少

设置主键为assigned

Hibernate——(三)主键生成方式

必须手动设置ID

Hibernate——(三)主键生成方式

热点排行