Hibernate的检索方式(二)

 

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://aumy2008.blogbus.com/logs/13887948.html

二.设定查询条件

       where子句中给出的是对象的属性名,而不是字段名。

HQLQBC支持的各种运算

运算类型

HQL运算符

QBC运算符

含义

比较运算

=

Expression.eq()

等于

<> 

Expression.not(Expression.eq())

不等于

Expression.gt()

大于

>=

Expression.ge()

大于等于

Expression.lt()

小于

<=

Expression.le()

小于等于

is null

Expression.isNull()

等于空值

is not null

Expression.isNotNull()

非空值

范围运算

in (列表)

Expression.in()

等于列表中的某一个值

not in (列表)

Expression.not(Expression.in())

不等于列表中的任意一个值

between 1 and 2

Expression.between()

大于等于值1并且小于等于值2

not between 1 and 2

Expression.not(Expression.between())

小于值1或者大于值2

字符串模式匹配

like

Expression.like()

字符串模式匹配

逻辑运算

and

Expression.add()或者Expression.conjunction()

逻辑与

or

Expression.or()或者Expression.disjunction()

逻辑或

not

Expression.not()

逻辑非

 1、比较运算

(1)不区分大小写:HQL使用lower()或者 upper()来实现(如:”…lower(c.name)=’tom’”);

                              QBC使用.ignoreCase()来实现(如:Expression.eq(“”,””) .ignoreCase())。

注:在HQL中,可以调用SQL函数。lower()转小写,upper()转大写。

       QBC不支持直接调用SQL函数。

 

(2)HQL查询支持数学运算表达式,而QBC不支持。

 

2、范围运算

HQL中的in示例: c.name in (‘aa’,’bb’);

QBC中的in示例: String[] names={‘aa’,’bb’}; Expression.in(‘name’,names);  。

 

3、字符串模式匹配

HQL和QBC通用:字符串模式中的通配符

通配符名称

通配符

作用

百分号

%

匹配任意类型且任意长度(长度可以为0)的字符串,如果是中文,需要两个百分号,即“%%

下划线

_

匹配单个任意字符,常用来限制字符串表达式的长度

 

QBC:MatchMode类包含的各个静态常量实例

匹配模式

举例

MatchMode.START

Expression.like(“name”,”y”, MatchMode.START)

姓名以y开头

MatchMode.END

Expression.like(“name”,”y”, MatchMode. END)

姓名以y结尾

MatchMode.ANYWHERE

Expression.like(“name”,”y”, MatchMode. ANYWHERE)

姓名中包含y

MatchMode.EXACT

Expression.like(“name”,”y”, MatchMode. EXACT)

精确匹配,姓名必须为y

 

4、逻辑运算

待续!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值