Hibernate 之 初识 uuid 和 native
2016-06-28 21:03
351 查看
在 Hibernate 中一个数据模型的主键常用生成方式有三种:uuid、native、assigned,它们分别是通用唯一标识、自增、自定义。
1、uuid是系统产生的,insert数据库时相比native要快很多,但是uuid是一长串无序字符串,理论上讲查找起来会慢一点,但是不太会影响开发的。而native是数据库生成,在insert时会先计算所以会比uuid慢一点,但是在查找和删除数据时,会比较方便。
2、uuid和assigned的生成是在程序中完成的,一个是自动,一个是手动。所以在进行session.save()时,不会产生sql语句,数据库中也不会有数据。而native需要读取数据库数据才能完成自动递增,所以在执行session.save()时,就会产生相应的sql语句,数据库中就会有数据。
uuid 简述
uuid 即通用唯一标识,听这个名字就很霸气,没错。在不知道怎么定义主键时,它是不二的选择。
1、生成简单,java中已经有现成的东西(java就是好啊),引入java.util.UUID,例:
UUID uu = UUID.randomUUID();System.out.println(uu);//会打印出什么天知道。
2、通用唯一,其实可以加上全球,uuid的生成原理:
当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),
据说uuid用上千年万年才会出现一条重复数据,这意味着在任何时候两个相同数据表的数据放在一起不会出现主键冲突,这在实际开发中会带来很大的好处。
1、uuid是系统产生的,insert数据库时相比native要快很多,但是uuid是一长串无序字符串,理论上讲查找起来会慢一点,但是不太会影响开发的。而native是数据库生成,在insert时会先计算所以会比uuid慢一点,但是在查找和删除数据时,会比较方便。
2、uuid和assigned的生成是在程序中完成的,一个是自动,一个是手动。所以在进行session.save()时,不会产生sql语句,数据库中也不会有数据。而native需要读取数据库数据才能完成自动递增,所以在执行session.save()时,就会产生相应的sql语句,数据库中就会有数据。
uuid 简述
uuid 即通用唯一标识,听这个名字就很霸气,没错。在不知道怎么定义主键时,它是不二的选择。
1、生成简单,java中已经有现成的东西(java就是好啊),引入java.util.UUID,例:
UUID uu = UUID.randomUUID();System.out.println(uu);//会打印出什么天知道。
2、通用唯一,其实可以加上全球,uuid的生成原理:
当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),
据说uuid用上千年万年才会出现一条重复数据,这意味着在任何时候两个相同数据表的数据放在一起不会出现主键冲突,这在实际开发中会带来很大的好处。
相关文章推荐
- 详解HDFS Short Circuit Local Reads
- SQL Server Native Client下载 SQL Server Native Client安装方法
- 如何区分SQL数据库中的主键与外键
- Mysql主键相关的sql语句集锦
- sqlserver数据库主键的生成方式小结(sqlserver,mysql)
- 使用PowerShell .Net获取电脑中的UUID
- Shell脚本实现随机数多种方法介绍(date、random、uuid)
- 自增长键列统计信息的处理方法
- sql语句查询数据库中的表名/列名/主键/自动增长值实例
- Hibernate Oracle sequence的使用技巧
- jsp Hibernate批量更新和批量删除处理代码
- jsp hibernate的分页代码第1/3页
- Struts2+Hibernate实现数据分页的方法
- Hibernate环境搭建与配置方法(Hello world配置文件版)
- JAVA+Hibernate 无限级分类
- SSH整合中 hibernate托管给Spring得到SessionFactory
- jsp hibernate 数据保存操作的原理
- MySQL查询优化:用子查询代替非主键连接查询实例介绍
- MySQL 创建主键,外键和复合主键的语句
- Oracle与Mysql主键、索引及分页的区别小结