a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 165|回复: 1

[基础知识] JAVA基础:Hibernate数据查询(2)

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
  /** *//**要正确运行以上程序,需要在TRegister类中加入一个相应的构造函数& F" }  T- D: I8 Z7 J& T9 l' d
  public TRegister(String userName,String sex) {  Y3 A4 `: p$ }
  this.userName = userName;- g5 `  r3 ?9 }% o9 m) a; b
  this.sex = sex;* [& W" s* G8 }5 T; Q7 @
  }. v2 l. P: _6 E; s
  */
7 F1 E) n* @- w7 k: y  }
$ c1 F9 k; z8 J* z* d. Z  统计函数查询
( _9 S$ W% M1 o7 H0 n! a  可以在HQL中使用函数,经常使用的函数如下:
! x# D1 {' v1 J7 ]3 p* @+ n  count():统计记录条数。
, T! T5 [* }; \3 ~( o2 S. I" w2 b: }  min():求最小值。
- @  X& K; ]3 a7 H8 d  ?3 q  max():求最大值。
. e' J$ X+ g8 }; K2 g6 d6 L( Q  sum():求和。$ s- n: P( p. {: [
  avg():求平均值。
" f0 @) r, ~- T% h1 x  例如,要取得Student实例的数量,可以编写如下HQL语句:
# i* _% b. t2 ?$ q& o/ s1 d  select count(*) from Student
/ n+ }3 o. v  L  K  取得Student平均年龄的HQL语句:
) p1 i( G: @- y0 t) n8 j  select avg(s.age) from Student as s" ^* Z% R3 U# j1 D3 ]0 y
  可以使用distinct去除重复的数据:* v" m3 [( C1 Q! @: P& F6 e
  select distinct s.age from Student as s& ~+ V3 W: W& }. ~
  where子句:
  l: i- j, ?2 s  HQL也支持子查询,它通过where子句实现这一机制。where子句可以让用户缩小要返回的实例的列表范围。例如下面语句会返回所有名字为"Bill"的Student实例:" [6 y7 m, m5 K# G7 r9 }6 I
  Query query = session.createQuery("from Student as s where s.name='Bill'");
% Z* z0 o/ b1 i# r% \* e; k  where子句允许出现的表达式包括了SQL中可以使用的大多数情况。
0 B+ R5 d6 t2 T) R  数学操作:+,-,*,/
' C  m" K/ }( e( `8 f" [$ ?3 n% q) [2 G% Q5 x9 _9 V* D
  真假比较操作:=, >=,
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:37:28 | 显示全部楼层

JAVA基础:Hibernate数据查询(2)

</p>  如果查询返回多条记录,可以用以下关键字来量化
6 ^+ u3 @2 }+ ?  all:表示所有的记录。
" F+ U; Y4 t) A/ F) n0 v" {  any:表示所有记录中的任意一条。8 `3 _- x5 W5 R+ a: k
  some:与any相同。
; [8 e# j5 X1 P0 ^3 K  in:与any等价。
( h6 |, A! v' j+ }  exists:表示子查询至少要返回一条记录。: t( M8 C3 Z( d  z( `; L
  例如,下面语句返回所有学生年龄都大于18的班级对象
; k: j6 n; E0 k, T- ?9 f+ Z) y2 c& u9 E& ^
  from Group g where 18
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-6 09:09 , Processed in 0.157196 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表