用户登录
用户注册

分享至

mybatis主键生成策略

  • 作者: 达?矢抾哆拉?
  • 来源: 51数据库
  • 2020-09-24
1. hibernate的主键生成策略:generator元素:表示了一个主键生成器,每个主键都必须定义相应的主键生成策略。它用来为持久化类实例生成唯一的标识 。
1.1 程序员自己控制:assigned
1.2 数据库控制: identity sequence
1.3 hibernate控制:increment hilo uuid/uuid.hex
1.4 其它:native

1.5 自定义主键生成器

主键生成策略
1. assigned
数据类型不限、保存前必须赋值

2. identity(重点掌握) 必须是有标识列 一般用来连接SQL和MySQL
数字,无需赋值

3. sequence(重点掌握) 这是序列 一般连接Oracle
数字,无需赋值, 默认使hibernate_sequence这个序列,也可以通过sequence参数赋值
insert into t_student(sid,sname) values(hibernate_sequence.nextval,?)
insert into t_student(sid,sname) values(seq_abc.nextval,?)

4. increment
数字,无需赋值

5. hilo
数字,无需赋值,需要额外提供一个表,还需要在表中定义一个整数类型的字段,并插入一条记录。
使用时需要指定3个参数
table:表示hilo算法需要引用的表名(默认表名为hibernate_unique_key)
column:表示hilo算法需要引用的列名(默认列名为next_hi)
max_lo:表示hilo算法需要的变化值(可以随便给,一般设置为1)

6. uuid/uuid.hex (是由容器自动生成的一个32位的字符串,.hex代表的是十六进制)
32位的字符串,无需赋值,

7. native(重点掌握)
等于identity+sequence

8. foreign(主要用在一对一关系的映射中)-本节课暂不介绍

9. 自定义主键生成键
实现org.hibernate.id.IdentifierGenerator接口即可,并还可以实现org.hibernate.id.Configurable接口来读取一些配置信息
PersistentIdentifierGenerator.TABLE
PersistentIdentifierGenerator.PK

这个是我们老师给我们的txt文本
我们才学几天呢
软件
前端设计
程序设计
Java相关