框架提供了三种主键生成方式,一种是由用户自己维护,一种是由hibernate框架维护,另一种是由数据库维护。

自己维护就是在插入数据的时候,一定要指定主键的值,否则会出错,如果由框架维护和由数据库维护,则主键的值不需要我们给,它们自动会给我们填上。

主键的生成方式在对应的.hbm.xml文件中主键字段id标签中指定。

assigened:表示由用户自己维护,在插入数据的时候,一定要给定主键值。

控制台打印出来的创建语句如下:

 create table t_user (
usercode varchar(32) not nullauto_increment,
userpswd varchar(20) not null,
username varchar(255),
regdate varchar(19),
orgtype varchar(1),
primary key (usercode)
)

native:表示由数据库自动生成主键。

注意:主键类型不能是字符串类型,一般是int类型的

uuid:框架为我们维护主键

create table t_user (
usercode varchar(32) not null,
userpswd varchar(20) not null,
username varchar(255),
regdate varchar(19),
orgtype varchar(1),
primary key (usercode)
)

自动插入的是32位十六制数组成的字符串形式

这三种主键生成策略常用的是uuid,根据硬件信息和时间信息等生成的。另外native不建议使用,原因是数据库主键设计应该采用与业务无关的字段作为主键。

最新文章

  1. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
  2. jQuery插件:jqGrid使用(一)
  3. div文字超出
  4. URLConnection 和 HttpClients 发送请求范例
  5. Struts登录
  6. 常用的PC/SC接口函数
  7. Java学习日志-01-Hello World
  8. 交互式shell和非交互式shell、登录shell和非登录shell的区别
  9. SQL Server select into/bulkcopy用法
  10. Interpreter Expression 解释器模式
  11. UVa 10256 The Great Divide,推断两个凸包是否相离
  12. 关于document.write()重写页面
  13. Spring mvc 简单异常配置jsp页面
  14. 数据库基础——(SQLserver)约束
  15. java properties 对list的支持
  16. DOM4J介绍与代码示例
  17. Ubuntu下解决解压zip文件中文文件名乱码问题
  18. ES6块级作用域
  19. ActionBar+Fragment实现顶部标签页
  20. 100-days: twenty-nine

热门文章

  1. C#设计模式系列:状态模式(State)
  2. css3使用技巧:细线边框的3种不同的写法
  3. Neutron 架构 - 每天5分钟玩转 OpenStack(67)
  4. Deffered.js的实现原理
  5. 修改ibdata1大小的验证以及如何使用mysqld_multi管理多实例
  6. 追根溯源:EntityFramework 实体的状态变化
  7. Hammer.js分析(二)——manager.js
  8. servlet中用注解的方式读取web.xml中的配置信息
  9. 理解HTTP协议
  10. 让我们一起用开源数据库和开源框架废弃Access