- 浏览: 656084 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
HkEndless:
不好意思,请问这确定是回调机制吗。你的例子中只是将接口的实现类 ...
Spring CallBack回调机制介绍 -
hanmiao:
写的真乱啊,完全不知所云...
Java如何调用可执行文件和批处理命令 -
junia_1:
junia_1 写道 shock: ...
为什么要使用EJB -
junia_1:
shock:
为什么要使用EJB -
coollifer:
不错
SQL Server数据导入到Oracle中的方法
方法 |
说明 |
Restrictions .eq |
= |
Restrictions .allEq |
利用Map来进行多个等于的限制 |
Restrictions .gt |
> |
Restrictions .ge |
>= |
Restrictions .lt |
< |
Restrictions .le |
<= |
Restrictions .between |
BETWEEN |
Restrictions .like |
LIKE |
Restrictions .in |
in |
Restrictions .and |
and |
Restrictions .or |
or |
Restrictions .sqlRestriction |
用SQL限定查询 |
QBC常用限定方法
Restrictions .eq --> equal,等于.
Restrictions .allEq --> 参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restrictions .eq 的效果
Restrictions .gt --> great-than > 大于
Restrictions .ge --> great-equal >= 大于等于
Restrictions .lt --> less-than, < 小于
Restrictions .le --> less-equal <= 小于等于
Restrictions .between --> 对应SQL的between子句
Restrictions .like --> 对应SQL的LIKE子句
Restrictions .in --> 对应SQL的in子句
Restrictions .and --> and 关系
Restrictions .or --> or 关系
Restrictions .isNull --> 判断属性是否为空,为空则返回true
Restrictions .isNotNull --> 与isNull相反
Restrictions .sqlRestriction --> SQL限定的查询
Order.asc --> 根据传入的字段进行升序排序
Order.desc --> 根据传入的字段进行降序排序
MatchMode.EXACT --> 字符串精确匹配.相当于"like 'value'"
MatchMode.ANYWHERE --> 字符串在中间匹配.相当于"like '%value%'"
MatchMode.START --> 字符串在最前面的位置.相当于"like 'value%'"
MatchMode.END --> 字符串在最后面的位置.相当于"like '%value'"
例子
查询年龄在20-30岁之间的所有学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions
.between("age",new Integer(20),new Integer(30)).list();
查询学生姓名在AAA,BBB,CCC之间的学生对象
String[] names = {"AAA","BBB","CCC"};
List list = session.createCriteria(Student.class)
.add(Restrictions
.in("name",names)).list();
查询年龄为空的学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions
.isNull("age")).list();
查询年龄等于20或者年龄为空的学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions
.or(Restrictions
.eq("age",new Integer(20)),
Restrictions
.isNull("age")).list();
--------------------------------------------------------------------
使用QBC实现动态查询
public List findStudents(String name,int age){
Criteria criteria = session.createCriteria(Student.class);
if(name != null){
criteria.add(Restrictions
.liek("name",name,MatchMode.ANYWHERE));
}
if(age != 0){
criteria.add(Restrictions
.eq("age",new Integer(age)));
}
criteria.addOrder(Order.asc("name"));//根据名字升序排列
return criteria.list();
}
-----------------------------------------------------------------------------------
今天用了写hibernate
高级查询时用了Restrictions
(当然Expression也是可以以的)这个类.感觉不错.
下面的代码写的不易读.其实核心就是一句
Restrictions
.or(Restrictions
.like(),Restrictions
.or(Restrictions
.like,........))
里面的or可以无限加的.还是比较好用
Session session = getHibernateTemplate().getSessionFactory()
.openSession();
Criteria criteria = session.createCriteria(Film.class);
List<Film> list = criteria.add(
Restrictions
.or(Restrictions
.like("description", key,MatchMode.ANYWHERE),
Restrictions
.or(Restrictions
.like("name", key,MatchMode.ANYWHERE),
Restrictions
.or( Restrictions
.like("direct", key,MatchMode.ANYWHERE),
Restrictions
.or(Restrictions
.like("mainplay",key,MatchMode.ANYWHERE),
Restrictions
.like("filearea", key,MatchMode.ANYWHERE)))))).list();
session.close();
return list;
发表评论
-
URLClassLoader
2012-05-27 19:45 994This example shows how a serv ... -
MyClassLoader 自定义类加载器
2012-05-27 19:38 1505package demo; import java. ... -
Deal with big-endian and little-endian order
2011-12-25 19:17 1114Java virtual machine always use ... -
修改eclipse的背景色
2011-11-12 19:23 1110eclipse 操作界面默认颜色为白色。对于我们长期 ... -
hibernate3 大批量更新/删除数据 (update/delete)
2011-11-10 12:15 1365Hibernate3.0 采用新的基 ... -
多线程管道流输入输出模式
2011-11-07 07:23 1087import java.io.* ; class Send ... -
Java计数单字节双字节字符个数的例子
2011-10-26 14:29 1290/* 计数单双字符的个数并存储在Map对象中 ... -
常用内存数据库3
2011-10-24 00:24 14974.1.2 哪些场合适合使用其他的关系型数据库管 ... -
hibernate lazy(延迟加载)
2011-10-12 02:20 914hibernate lazy策略可以使用在: * < ... -
一些关于Hibernate延迟加载的误区
2011-09-12 23:13 885首先是第一个误区:延迟加载只能作用于关联实体 看到这个是 ... -
java字节码规则
2011-09-05 13:56 1251栈和局部变量操作 将常量压入栈的指令 aconst_nul ... -
Tomcat中限制ip访问
2011-08-23 21:40 1249Tomcat中限制ip访问是非常简单的,只需要编辑server ... -
一个Java程序员应该掌握的10项技能
2011-08-22 10:27 6171、语法:必须比较熟 ... -
2011 年 8 月 Java 开发人员新闻快讯
2011-08-18 18:59 832Java SE 7 发布了! 经过世界各地 Ja ... -
BlockingQueue
2011-08-13 09:59 708import java.util.concurrent.Arr ... -
org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling
2011-08-12 19:17 1243Hi I am facing a problem wit ... -
eclipse中java项目转换为web项目
2011-07-27 18:29 895经常在eclipse中导入web项目时,出现转不了项目类型 ... -
Oracle官方Weblogic插件安装
2011-07-20 22:00 2873Installing Oracle Enterprise Pa ... -
Criteria Condition: Match Mode End
2011-07-02 11:05 978//////////////////////////// ... -
Criteria: Group By Criteria
2011-07-02 11:03 1327/////////////////////////////// ...
相关推荐
criteria.add(Restrictions.like("name", nameKey, MatchMode.ANYWHERE)); List<Student> students = criteria.list(); ``` 此外,`Restrictions.sqlRestriction`允许我们直接使用SQL片段作为条件,但这种方式降低...
然后可以设置一些过滤条件:Example exampleUser = Example.create(u) .ignoreCase() // 忽略大小写 .enableLike(MatchMode.ANYWHERE); // 对 String 类型的属性,无论在那里值在那里都匹配。相当于 %value% ...
* MatchMode.ANYWHERE:字符串在中间位置 * MatchMode.START:字符串在最前面的位置 * MatchMode.END:字符串在最后面的位置 这些方法可以根据需要组合使用,以实现复杂的查询条件。 Criterion 是 Hibernate 中的...
这里使用`Restrictions.like("title", "%C%", MatchMode.ANYWHERE)` 来进行模糊查询,查找所有标题中包含"C#"的书籍。`MatchMode.ANYWHERE` 表示匹配任意位置的字符。 #### 五、排序 若要对查询结果进行排序,可以...
12. `MatchMode`: 用于`Restrictions.like`方法的模式匹配方式,包括: - `EXACT`: 精确匹配,相当于`LIKE 'value'` - `ANYWHERE`: 匹配任何位置,相当于`LIKE '%value%'` - `START`: 匹配开始位置,相当于`LIKE ...
Example exampleUser = Example.create(u).ignoreCase().enableLike(MatchMode.ANYWHERE); ``` Projection接口用于处理查询结果,比如计算平均值、计数、最大值、最小值和求和。SimpleProjection和ProjectionList...
`MatchMode.Start`表示关键词需匹配字段的开头,`MatchMode.End`则表示匹配结尾,`MatchMode.Anywhere`表示任意位置。 2. **NHibernate.Linq** 如果你更喜欢使用LINQ,可以通过`IQueryable`接口的`Where`方法结合...
- 使用`like()`方法进行模糊匹配,`MatchMode.ANYWHERE`表示在任何位置匹配,例如:`crt.add(Restrictions.like("allFather", SystemForUserContext.getOrganizationRootNodeId(), MatchMode.ANYWHERE));...
然后可以设置一些过滤条件,如 `ignoreCase()` 和 `enableLike(MatchMode.ANYWHERE)` 等。 Projection 主要是让 Criteria 能够进行报表查询,并可以实现分组。Projection 主要有 SimpleProjection、ProjectionList ...
这里使用了 `Restrictions.like` 方法来实现模糊匹配,`MatchMode.ANYWHERE` 参数表示匹配字符串中的任意位置。 #### 四、QBE 查询 QBE 查询是一种基于示例对象来进行查询的方式,它允许开发者使用一个已知的对象...
然后可以设置一些过滤条件:Example exampleUser = Example.create(u) .ignoreCase() // 忽略大小写 .enableLike(MatchMode.ANYWHERE); // 对 String 类型的属性,无论在那里值在那里都匹配。相当于 %value% ...
然后可以设置一些过滤条件,例如 Example exampleUser = Example.create(u).ignoreCase().enableLike(MatchMode.ANYWHERE); // 忽略大小写, 对 String 类型的属性,无论在那里值在那里都匹配。 Projection 主要有 ...