- 浏览: 480869 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (437)
- Windows设置 (2)
- oracle数据库 (39)
- bug--jsp (4)
- j2se (13)
- js (40)
- bug-tomcat不能启动程序 (1)
- Hibernate (29)
- eclipse (20)
- java (65)
- 设计模式 (6)
- bug (18)
- PL/SQL (11)
- 前台 (5)
- 杂谈 (25)
- UML (1)
- jdbc编程 (2)
- 技术调研 (1)
- 数据通信 (2)
- ios (1)
- servlet自学笔记 (10)
- tomcat (9)
- SQL学习笔记 (6)
- java工具 (1)
- 数据库设计 (4)
- javascript (10)
- jsp (11)
- struts (17)
- ajax (7)
- linix/Unix (6)
- 资源 (3)
- spring (14)
- 算法 (5)
- 计算机网络 (2)
- http (5)
- c++ (2)
- web应用 (3)
- jvm (5)
- java中的字符编码 (14)
- java代码库 (2)
- classloader (1)
- 读书笔记 (1)
- c (1)
- 开源软件 (1)
- svn (1)
- AOP (1)
- java序列化 (1)
- 多线程 (4)
- The legendary programmers (1)
- Apache http Server (1)
- html tag (3)
- struts1.X学习笔记 (5)
- buffalo (1)
- 自己收藏 (0)
- TOEFL(IBT) (1)
- 网络翻墙 (0)
- 编译原理 (1)
- 书籍推荐 (1)
- css (10)
- javaee环境搭建资料 (1)
- 开源工具 (1)
- 美国生活 (1)
- spring自学 (3)
- log4j (3)
- 算法与数据结构 (5)
- 病毒,插件处理大全 (1)
- flex (2)
- webservice (1)
- git (7)
- cs (1)
- html (4)
- javaee (6)
- 开车 (0)
- springmvc (3)
- 互联网架构 (2)
- intellij idea (18)
- maven (15)
- mongodb (2)
- nginx (1)
- react (3)
- java基础例子 (2)
- springboot (2)
- 培训 (5)
- mysql (3)
- 数据库 (3)
- 生活 (2)
- intellij (3)
- linux (2)
- os (3)
最新评论
-
潇洒天涯:
[color=blue][color=cyan] ...
oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 -
hekai1990:
受教了..
oracle中的varchar2
Hibernate中,<id>标签下的可选<generator>子元素是一个Java类的名字,用来为该持久化类的实例生成惟一标示,所有的生成器都实现net.sf.hibernate.id.IdentifierGenerator接口这是一个非常简单的接口,某些应用程序可以选择提供它们自己的特定实现当然,Hibernate提供了很多内置的实现下面是一些内置主键生成器(Key Generator)的意义 1) assigned 2) hilo 3) seqhilo 6) sequence 7) native 8) uuid.hex 10)guid 11)select 12)foreign
主键由外部程序负责生成,无需Hibernate参与。 让应用程序在save()之前为对象分配一个标示符。这是 <generator>元素没有指定时的默认生成策略。
通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。 使用一个高/低位算法高效的生成long, short 或者 int类型的标识符。给定一个表和字段(默认分别是是 hibernate_unique_key 和next_hi)作为高位值的来源。 高/低位算法生成的标识符只在一个特定的数据库中是唯一的。
与hilo 类似,通过hi/lo 算法实现的主键生成机制,只是主键历史状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle。 使用一个高/低位算法来高效的生成long, short 或者 int类型的标识符,给定一个数据库序列(sequence)的名字。
4) increment
主键按数值顺序递增此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键这种方式可能产生的问题是:如果当前有多个实例访问同一个数据库,那么由于各个实例各自维护主键状态,不同实例可能生成同样的主键,从而造成主键重复异常因此,如果同一数据库有多个实例访问,此方式必须避免使用。
用于为long, short或者int类型生成 唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。 在集群下不要使用。
5) identity
采用数据库提供的主键生成机制如DB2 SQL Server MySQL中的主键生成机制。 对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。 返回的标识符是long, short 或者int类型的。
采用数据库提供的sequence 机制生成主键如Oralce 中的Sequence。在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence),而在Interbase中使用生成器(generator)。返回的标识符是long, short或者 int类型的。
由Hibernate根据底层数据库自行判断采用identity hilo sequence其中一种作为主键生成方式
用一个128-bit的UUID算法生成字符串类型的标识符,这在一个网络中是唯一的(使用了IP地址)。UUID被编码为一个32位16进制数字的字符串。 由Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后以长度32 的字符串表示)作为主键例如:5abefd3890cat33llsica3ee43bk222
9) uuid.string
与uuid.hex 类似,只是生成的主键未进行编码(长度16)在某些数据库中可能出现问题(如PostgreSQL)
在MS SQL Server 和 MySQL 中使用数据库生成的GUID字符串。
通过数据库触发器选择一些唯一主键的行并返回主键值来分配一个主键。
使用另外一个相关联的对象的标识符。通常和<one-to-one>联合起来使用。
一般而言,利用uuid.hex方式生成主键将提供最好的性能和数据库平台适应性另外由于常用的数据库,如 OracleDB2SQLServerMySql 等,都提供了易用的主键生成机制(Auto-Increase 字段或者Sequence)我们可以在数据库提供的主键生成机制上,采用generator-class=native的主键生成方式不过值得注意的是,一些数据库提供的主键生成机制在效率上未必最佳,大量并发insert数据时可能会引起表之间的互锁数据库提供的主键生成机制,往往是通过在一个内部表中保存当前主键状态(如对于自增型主键而言,此内部表中就维护着当前的最大值和递增量),之后每次插入数据会读取这个最大值,然后加上递增量作为新记录的主键,之后再把这个新的最大值更新回内部表中,这样,一次Insert操作可能导致数据库内部多次表读写操作,同时伴随的还有数据的加锁解锁操作,这对性能产生了较大影响因此,对于并发Insert要求较高的系统,推荐采用uuid.hex 作为主键生成机制。
发表评论
-
Hibernate:Envers 审计
2018-09-17 23:57 433https://blog.csdn.net/Silen ... -
【转】Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法
2016-12-13 15:07 658http://www.cnblogs.com/hoojo ... -
【转】Spring3 整合Hibernate3.5 动态切换SessionFactory (切换数据库方言)
2016-12-13 15:05 717http://www.cnblogs.com/hoojo ... -
Hibernate中的三种对象状态:
2015-11-15 18:33 383Hibernate中的三种对象状态: 1.瞬时(tr ... -
【转】Hibernate过滤器使用窍门
2015-09-08 17:13 515Hibernate过滤器(filter)是全局有效的 ... -
【转】Hibernate left join(左连接)
2015-08-26 17:27 1831如果是内连接的多表查询可以不用join关键字,在where ... -
【转】Hibernate 所有缓存机制详解
2015-08-26 14:50 612hibernate提供的一级缓存 hibernate是一个 ... -
【转】Hibernate中session的clear(),flush(),evict()方法详解
2015-08-26 14:22 10041.Clear 方法 无论是Load 还是 Get ... -
object references an unsaved transient instance - save the transient instance be
2015-04-15 10:17 869在做hibernate保存时出现异常object refer ... -
【转】An association from the table * refers to an unmapped class: *
2015-04-08 10:13 889解决方法:class路径没写正确。有三个地方需要注意1、< ... -
hibernate映射文件one-to-one 元素属性(转)
2013-01-07 19:13 801one-to-one 元素 属性: name:映射类 ... -
【转】Hibernate中重要对象的详解
2012-12-13 14:18 636★→→SessionFactory (org.hibernat ... -
【转】很详细的spirng+struts+hibernate实例
2012-12-13 14:17 2324本文并不想介绍Struts,Spring,Hiber ... -
【转】hibernate动态创建表,修改表字段
2012-10-22 18:50 1021我们知道,hibernate的tool工具中有个包hbm2dd ... -
【转】hibernate many-to-one(多对一)及 cascade(级联)
2012-09-19 16:18 765Model public class User { // ... -
报错:使用hibernate字符串超长
2012-09-13 17:47 1514在使用varchar2类型时必须指定其长度(最小1字节 ... -
包名不同的同名类的hibernate冲突
2012-09-13 14:38 1179在实际开发中,在有类a.b.c.POClass和a.b.c ... -
【转】hibernate自定义类型部分接口详解--用户自定义类型
2012-08-31 16:48 0UserType public interface Us ... -
ORA-00904: "THIS_"."C_UNIT": 标识符无效
2012-08-02 13:40 1496hibernate could not resolve pro ... -
oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值
2012-08-02 11:10 3332函数声明:nvl(col,val) 说明:当col为空时取va ...
相关推荐
使用<composite-id> 标签(并且内嵌元素)代替通常的<id>标签。比如,OrderLine类具有一个主键,这个主键依赖于Order的(联合)主键。 <composite-id name="id" class="OrderLineId"> </composite-id> ...
Hibernate的基本配置,以及个配置文件中的每个标签的说明。
标签id 5 主键生成器Generator 6 多对一, 一对一, 一对多, 多对多 7 hibernate多对一关联映射(Hibernate_Many2One) 7 hibernate一对一主键关联映射(单向关联Person---->IdCard) 8 hibernate一对一主键关联映射...
轻量级的Hibernate,用于android客户端,通过简单的标签@Table,@Column,@Id即可持久化表,字段和id的定义。
一、含演示数据库建立脚本(较简单) 二、使用Struts、Hibernate和display超简单的实现了分页,你不用在页面上再写很多和很多判断,简单到只需要几行语句: ... 三、由于使用了display,所以自动实现了Excel ...
复合主键映射 <br>通常将复合主键相关属性,单独抽取出来,建立一个独立的类 * 必须实现序列化接口 * 必须实现equals和hashcode方法 采用<composite-id>标签进行映射,其它属性采用正常映射
以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。 工程...
个人博客系统【Spring3+Hibernate3+Struts2】【SSH】 SSH个人博客系统 学习SSH时,做的一个个人博客系统。 需求分析: 对于本博客系统,是面向个人使用,主要用于记录日常学习知识与文章分享。 网站博主可以发表文章...
1.3. Seam 中的可点击列表:消息示例............................................................................................................................. 27 1.3.1. 理解代码.........................
主要是为了引入时间等字段,来试验一下struts2的时间标签是否好用.这次为了做成一个好点的实例.所以换掉了表结构.为歌词表.并附带2万首歌词的数据库.因为歌词插入数据太大.所以单另上传了.如果不需要这两万条数据的...
many-to-one:标签中对于cascade的取值delete,delete-orphan,all-delete-orphan(只用unique属性值不为true不能出现)慎用 cascade:级联属性 none:不做任何级联操作 save-update:对当前对象执行save,update, ...
如下图: 在上述界面的“Properties”标签中可以配置hbm的其他选项,包括文件扩展名,聚合列名,ID生成规则等。完成后,系统会自动生成一个名为“UserInfo.hbm”的文件,我们可以通过这个文件生成相关的存根类。在...
(八) 复合自然主键实例(源代码hibernate_0500) 218 (九) Hibernate的类型 224 1. Java基本值类型的Hibernate映射 224 2. Java时间和日期类型的Hibernate映射类型 224 3. Java大对象类型的Hibernate映射类型 225 4....
接下来是配置hibernate中jc_mycontent表的配置文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" ...
像@hibernate.clas、@hibernate.property、@struts.action-forward等等这些特定的注释标签需要去查XDoclet的相关文档了,Xdoclet对目前流行的多种框架、技术都提供了相关的支持。 这样,我们就能在使用ant编译工程...
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <value>com.mysql.jdbc.Driver</value> <value>jdbc:mysql://${database.host}:${database.port}/empty?...
2、封装DAO操作,大大简化了数据库操纵业务,统一的查询参数接口,统一的分页对象,可创建单机可集群环境的数据唯一ID。支持Hibernate,JPA和MongoDB操纵 3、统一配置管理,配置文件不随工程一起发布,可以有效地...
如果你觉得hibernate,ibatis等orm框架过于笨重,不烦试下jdao,它可以在团队开发中规范团队持久层代码,较少开发量,特别在单表操作上基本是对象操作,对于复杂SQL查询也有较好的封装。一、使用DAO方式操作数据:...
SQLAlchemy 是 Python 界著名 ORM 框架,地位与 Java 界 Hibernate 类似。而 Thing 不是对 SQLAlchemy 的包装,只使用了其核心部分(数据库适配器等),ORM 部分完全自行实现。这一做法使 Thing 非常小巧,核心代码...
94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...