Hibernate
SpringJava
略写
展开
-
Hibernate乐观锁实现之Version
Hibernate乐观锁实现之Version 来自:http://esffor.iteye.com/blog/168243 通过在表中及POJO中增加一个version字段来表示记录的版本,来达到多用户同时更改一条数据的冲突数据库脚本: create table studentVersion (id varchar(32),n...原创 2009-10-22 14:41:28 · 123 阅读 · 0 评论 -
不要依赖hibernate的二级缓存
一、hibernate的二级缓存如果开启了二级缓存,hibernate在执行任何一次查询的之后,都会把得到的结果集放到缓存中,缓存结构可以看作是一个hashtable,key是数据库记录的id,value是id对应的pojo对象。当用户根据id查询对象的时候(load、iterator方法),会首先在缓存中查找,如果没有找到再发起数据库查询。但是如果使用hql发起查询(...2009-04-24 12:00:21 · 106 阅读 · 0 评论 -
hibernate优化
本文依照HIBERNATE帮助文档,一些网络书籍及项目经验整理而成,只提供要点和思路,具体做法可以留言探讨,或是找一些更详细更有针对性的资料。初用HIBERNATE的人也许都遇到过性能问题,实现同一功能,用HIBERNATE与用JDBC性能相差十几倍很正常,如果不及早调整,很可能影响整个项目的进度。大体上,对于HIBERNATE性能调优的主要考虑点如下:Ø ...2009-04-24 11:59:34 · 66 阅读 · 0 评论 -
Hibernate缓存管理
1. Cache简介:缓存(Cache)是计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝,应用程序在运行时直接读写缓存中的数据,只在某些特定时刻按照缓存中的数据来同步更新数据存储源。缓存的物理介质通...2009-04-24 11:59:02 · 59 阅读 · 0 评论 -
Hibernate查询条件封装对象Expression介绍
Criteria Query是Hibernate提供的将SQL语句对象化表示的一种方法。当我们使用JDBC方式查询数据时会这样写: select NAME FROM EMPLOYEE where ID = '001' 使用Hibernate的Criteria Query方式查询时,就可以使用我们已经习惯了的面向对象的方式。如下: 程序代码import net....2009-04-24 11:56:59 · 95 阅读 · 0 评论 -
Hibernate中双向关联加载排序的解决方案
问题:Hibernate的<many-to-many>双向关联中,一方加载另一方时,怎么样达到按自定义规则排序的目的呢?实例:角色和菜单是多对多的关系,为角色分配菜单后,加载菜单时,我需要按照菜单的ID来排序显示。解决办法:1. 通过在hbm配置文件中配置解决,需要自定义比较器。1) 在多对多的主控端指定sort...2009-04-24 11:55:35 · 103 阅读 · 0 评论 -
Hibernate性能优化
有很多人认为Hibernate天生效率比较低,确实,在普遍情况下,需要将执行转换为SQL语句的Hibernate的效率低于直接JDBC存取,然而,在经过比较好的性能优化之后,Hibernate的性能还是让人相当满意的,特别是应用二级缓存之后,甚至可以获得比较不使用缓存的JDBC更好的性能,下面介绍一些通常的Hibernate的优化策略: 1.抓取优化 抓取是指Hib...2009-04-24 11:54:23 · 81 阅读 · 0 评论 -
java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
Java数据类型Hibernate数据类型标准SQL数据类型(PS:对于不同的DB可能有所差异)byte、java.lang.BytebyteTINYINTshort、java.lang.ShortshortSMALLINTint、java.lang.IntegerintegerINGEGER...2009-04-24 11:53:47 · 90 阅读 · 0 评论 -
让Hibernate输出SQL语句参数配置
在J2ee应用中,如果采用Hibernate框架,可以自动建立数据库实体与Java实体类的映射关系,大大方便Java程序进行持久化对象访问和操作,从而明显提高企业应用开发效率,减轻Java程序与后台数据库的依赖性。但是,有时候如果操作不慎,可能造成映射关系不完整(特别是存在外键链接的时候),造成访问数据库对象时程序有Bug。这时,可以通过参数配置,让Hibernate在每次需要从数...2009-04-24 11:52:36 · 859 阅读 · 0 评论 -
Hibernate3调用存储过程用法
DB2中简单存储过程 selectAllUsers CREATE procedure selectAllUsers DYNAMIC RESULT SETS 1 BEGIN DECLARE temp_cursor1 CURSOR WITH RETURN TO CLIENT FOR SELECT * FROM test; ...2009-04-24 11:49:54 · 92 阅读 · 0 评论 -
Hibernate二级缓存攻略
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。 hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓...2009-04-24 11:48:30 · 63 阅读 · 0 评论 -
EhCache的使用
1.EhCache是什么 EhCache是Hibernate的二级缓存技术之一,可以把查询出来的数据存储在内存或者磁盘,节省下次同样查询语句再次查询数据库,大幅减轻数据库压力;2.EhCache的使用注意点 当用Hibernate的方式修改表数据(save,update,delete等等),这时EhCache会自动把缓存中关于此表的所有缓存全部删除掉(这样能...2009-04-24 11:47:44 · 91 阅读 · 0 评论 -
Hibernate读写Clob和Blob类型字段
来自:http://esffor.iteye.com/blog/168264 数据库脚本:create table testcb(id varchar(32) primary key,name varchar(32),photo blob,description text); Hibernate....原创 2009-10-22 14:59:59 · 122 阅读 · 0 评论 -
Hibernate乐观锁实现之Timestamp
来自:http://esffor.iteye.com/blog/168242 通过在表中及POJO中增加一个Timestamp字段来表示记录的最后更新时间,来达到多用户同时更改一条数据的冲突,这个timestamp由数据库自动添加,无需人工干预数据库结构: create table studentTimestamp(id varchar(...原创 2009-10-22 14:53:05 · 139 阅读 · 0 评论 -
什么是ORM?
持久化层封装了数据访问细节,为业务逻辑层提供了面向对象的API。完善的持久化层应该达到以下目标: 代码可重用性高,能够完成所有的数据库访问操作 如果需要的话,能够支持多种数据库平台 具有相对独立性,当持久化层的实现发生变化,不会影响上层的实现。那么到底如何来实现化持久化层呢?对于复杂的数据模型,这接通过JDBC编程来实现健壮的持久化层需要有专业的知识,对于企业...2009-04-24 12:09:42 · 153 阅读 · 0 评论