讲解Hibernate query语句

开发 后端
这里介绍Hibernate query语句,今天要在sqlserver环境下做一个简单的增删改功能,要用到分页,开始直接用oracle数据库环境一直用的一个jdbc重构过的类处理。

Hibernate还是比较常用的,于是我研究了一下Hibernate query语句,在这里拿出来和大家分享一下,希望对大家有用。

今天要在sqlserver环境下做一个简单的增删改功能,要用到分页,开始直接用oracle数据库环境一直用的一个jdbc重构过的类处理,发现不行,才想起oracle和sqlserver的分页sql语句写法是很不一样的,于是打算google一下,紧接又想,何不先看看Hibernate在sqlserver环境是怎么处理分页的(我这里用的是Hibernate 3.0)。

先把Hibernate配置文件的show_sql改成true,启动tomcat,在项目原来的一个功能里找到一个翻页的地方,比如每页显示两条,***页的时候,Hibernate query语句是:SELECT TOP 2 * FROM  …… 恩,对的,看来Hibernate还比较聪明,***页直接用top语句,可是点下一页,当查询的记录应是3-4条时,Hibernate query语句是: SELECT TOP 4 * FROM…… 不理解了,难道Hibernate这么笨吗,如果我要查的是第100万条到100万零10条的记录,难道他也是先把这100万零10条全部查出来吗?

但是我测试的结果就是如果我要去第5000页的数据,他就是select top 10000 * from ……这样取出来的。但是如果把sql dialect  改成oracle,处理是用  rownum    直接去取需要的中间那么多条记录的。明天升级到***的Hibernate 3.3试试看会不会这样。难道java的开源框架对sql server这么感冒? 呵呵

监控了下数据库,发现公司的php程序在翻页时也是这样处理的,我就奇怪了,sql server2005中也有rownum概念的啊。看来代码从sql server2000到2005以后还是要做一些优化的

【编辑推荐】

  1. 分析Hibernate插入操作
  2. 剖析Hibernate批量更新
  3. 全面讲解Hibernate二级缓存
  4. 讲述Hibernate核心接口
  5. 概括Hibernate批量处理
责任编辑:佚名 来源: 51CTO.com
相关推荐

2009-06-18 09:47:50

2009-06-29 09:00:42

Hibernate的Q

2009-09-29 17:11:23

Hibernate T

2009-09-29 10:12:03

Hibernate A

2009-09-24 10:50:31

Hibernate主键

2009-09-25 16:08:12

Hibernate f

2009-09-23 15:50:21

Hibernate u

2009-09-29 14:03:14

Hibernate数据

2009-09-28 11:30:53

Hibernate核心

2009-09-24 17:11:53

Hibernate处理

2009-09-25 17:03:29

Hibernate是什

2009-09-27 17:23:16

Hibernate应用

2009-06-16 14:36:54

Hibernate继承

2009-09-24 10:35:10

Hibernate查询

2009-06-18 12:59:39

Criteria Qu深入浅出Hiberna

2009-09-24 10:22:38

Hibernate3新

2009-09-24 11:04:56

Hibernate二级

2009-06-17 14:41:57

Hibernate查询

2009-10-15 11:42:05

VB.Net赋值语句

2010-09-03 14:31:31

SQLSELECT语句
点赞
收藏

51CTO技术栈公众号