- 浏览: 890363 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
通过Session得到Criteria类的对象
- /**
- * 用Criteria方便的综合查询 Criteria类有丰富的比较方法
- *
- * 如:大于,小于,等于, not null, in,null, like, isEmpty....
- */
- public static void select()
- {
- Session s = null;
- try
- {
- s = HibernateUtil.getSeesion();
- //得到Criteria对象
- final Criteria c = s.createCriteria(User.class);
- //添加查询条件 ,eq()表示等于,第一个参数是User类上的属性名, 第二个参数是值 .
- c.add(Restrictions.eq("name", "zl"));
- c.add(Restrictions.lt("birthday", new Date())); //lt()表示小于
- //下面两个条件是 或的关系,可以注意观察输出的SQL语句
- c.add(Restrictions.or(Restrictions.eq("name", "wj"), Restrictions.eq("name", "name0")));
- // 分页
- c.setFetchSize(10); //从第10条记录起
- c.setMaxResults(10); //查出10条记录
- //执行查询
- final List<User> list = c.list();
- for (final User u : list)
- {
- System.out.println(u.getId() + " " + u.getName());
- }
- }
- finally
- {
- s.clear();
- }
- }
/** * 用Criteria方便的综合查询 Criteria类有丰富的比较方法 * * 如:大于,小于,等于, not null, in,null, like, isEmpty.... */ public static void select() { Session s = null; try { s = HibernateUtil.getSeesion(); //得到Criteria对象 final Criteria c = s.createCriteria(User.class); //添加查询条件 ,eq()表示等于,第一个参数是User类上的属性名, 第二个参数是值 . c.add(Restrictions.eq("name", "zl")); c.add(Restrictions.lt("birthday", new Date())); //lt()表示小于 //下面两个条件是 或的关系,可以注意观察输出的SQL语句 c.add(Restrictions.or(Restrictions.eq("name", "wj"), Restrictions.eq("name", "name0"))); // 分页 c.setFetchSize(10); //从第10条记录起 c.setMaxResults(10); //查出10条记录 //执行查询 final List<User> list = c.list(); for (final User u : list) { System.out.println(u.getId() + " " + u.getName()); } } finally { s.clear(); } }
DetachedCriteria 在构造时不须要Session对象,可以在没有Session时完成拼接查询条件,要执行时才须要Session对象
- //在Action中 拼查询条件
- public ActionForward Action (....)
- {
- DetachedCriteria dc = DetachedCriteria.forClass(User.class);
- String name = request.getParameter("name");
- //拼查询条件
- if (name != null)
- dc.add(Restrictions.eq("name", name));
- int age = request.getParameter("age");
- if(age > 0)
- dc.add(Restrictions.eq("age", age));
- List users = query(dc);
- }
//在Action中 拼查询条件 public ActionForward Action (....) { DetachedCriteria dc = DetachedCriteria.forClass(User.class); String name = request.getParameter("name"); //拼查询条件 if (name != null) dc.add(Restrictions.eq("name", name)); int age = request.getParameter("age"); if(age > 0) dc.add(Restrictions.eq("age", age)); List users = query(dc); }
- //在DAO层 查询
- static List query(DetachedCriteria dc)
- {
- Session s = HibernateUtil.getSession();
- Criteria c = dc.getExecutableCriteria(s); //这时须要一个session
- List rs = c.list();
- s.close();
- return rs;
- }
//在DAO层 查询 static List query(DetachedCriteria dc) { Session s = HibernateUtil.getSession(); Criteria c = dc.getExecutableCriteria(s); //这时须要一个session List rs = c.list(); s.close(); return rs; }
发表评论
-
Hibernate批量操作(JDBC批量操作)
2011-09-06 00:24 1295部分内容转自 :http://ga ... -
Hibernate懒加载深入分析
2011-09-06 00:19 1331懒加载可以提高性能吗? 不可以简单的说"能" ... -
getSesson currentSession
2011-09-06 00:15 10061 getCurrentSession创建的session会和 ... -
Hibernate 操作Blob Clob
2011-09-05 23:46 1072Photo.java Java代码 i ... -
Hibernate建表错误,Could not determine type for: java.util.List
2011-04-04 22:19 1656今天遇到 Could not determine type f ... -
Hibernate的fetch="join"和fetch="select"
2011-03-24 14:16 972fetch参数指定了关联对 ... -
Hibernate的Criteria用法总结
2011-03-23 10:53 781最近在项目中使用 Struts 和 Hibernate 进行开 ... -
第29讲--为Spring集成的Hibernate配置二级缓存
2011-03-10 23:16 1105合理的使用缓存策略,往往在web开发中提高性能起到关键作用。 ... -
hibernate抓取策略
2011-02-12 13:23 825Hibernate最让人头大的就是对集合的加载形式。书看了N次 ... -
Hibernate笔记:HQL查询总结(一)——简单属性查询和实体对象查询
2011-02-01 23:38 3496本文一部分转自kuangbaoxu的博文hibernate-- ... -
Hibernate笔记:HQL查询总结(二)——条件查询
2011-02-01 23:35 1509条件查询 1.拼字符串 where条件后面,可以用字 ... -
Hibernate属性延迟加载
2011-02-01 21:28 1017Hibernate3开始增加了通过property节点的la ... -
Hibernate中的cascade和inverse
2011-01-31 00:31 995这两个属性都用于一多对或者多对多的关系中。而inverse特别 ... -
batch_size 和 fetch_size作用
2010-12-01 21:37 1283hibernate抓取策略,,batch-szie在< ... -
hibernate中SQLQuery的addEntity();方法
2010-10-20 10:48 2773如果使用原生sql语句进行query查询时,hibernate ... -
Hibernate的evict方法错误总结
2010-10-14 10:08 1213摘自百度知道:http://zhi ... -
hibernate中get方法和load方法的区别
2010-10-14 09:57 802键字: hibernate get load 区 ... -
Hibernate: 设A引用了B,则删A后可能要evict(A.getB())
2010-10-14 09:56 1008Hibernate: 设A引用了B,如果要先取A删A再取B删B ... -
Hibernate的flush()和evict()总结
2010-10-14 09:53 1328关键字: hibernate flush() evict() ... -
flush,commit,evict
2010-10-14 09:52 924Flush()后只是将Hibernate缓存中的数据提交到数据 ...
相关推荐
- **使用场景**:`Criteria` 适用于即时查询,而 `DetachedCriteria` 更适合跨层传递查询条件。 - **灵活性**:`DetachedCriteria` 提供了更大的灵活性,可以在不同层之间传递而不会丢失查询状态。 #### 三、`...
DetachedCriteria 是 Hibernate 中的一种离线查询对象,它可以在不依赖 Session 的情况下生成动态 SQL 语句并进行查询。下面是 DetachedCriteria 查询的详细知识点: 创建 DetachedCriteria 对象 DetachedCriteria...
Hibernate 的 Criteria 和 DetachedCriteria 是两个不同的概念,虽然它们都是用于查询数据的,但它们在创建和使用上有所不同。 首先,Criteria 是在线的,需要通过 Hibernate Session 来创建,即使用 `session....
UN - Manual of Tests and Criteria:2019(Rev7) - 最新英文电子版(536页).pdf
在Hibernate中,离线查询可以通过`Criteria` API或者`List`、`Query`对象的缓存结果实现。 在提供的链接中,博主可能详细探讨了这些概念,并给出了具体的代码示例。遗憾的是,由于没有具体的内容,我们无法深入分析...
DetachedCriteria 是Hibernate Criteria API 的一部分,主要用于创建可复用的查询逻辑。在DetachedCriteria中定义的查询条件可以在稍后的时间点附加到Session上执行,这使得查询可以脱离当前的Session状态,因此得名...
Criteria 和 DetachedCriteria 均可使用 Criterion 和 Projection 设置查询条件。可以设置 FetchMode(联合查询抓取的模式),设置排序方式。对于 Criteria 还可以设置 FlushModel(冲刷 Session 的方式)和 ...
Criteria 和 DetachedCriteria 均可使用 Criterion 和 Projection 设置查询条件。可以设置 FetchMode(联合查询抓取的模式)、设置排序方式。对于 Criteria 还可以设置 FlushModel(冲刷 Session 的方式)和 ...
Hibernate中的Criteria连表查询,包括单表属性查询,多表内连,以及左外连接查询
DetachedCriteria 是离线的 Criteria,它可以在 Session 之外创建,提供了 forClass(Class) 或 forEntityName(Name) 两个静态方法来创建 DetachedCriteria 实例。例如,DetachedCriteria detachedCriteria = ...
Criteria 是在线的,需要通过 Hibernate Session 创建,而 DetachedCriteria 是离线的,可以在不需要 Session 的情况下创建。DetachedCriteria 提供了静态方法 forClass(Class) 或 forEntityName(Name) 来创建实例。...
DetachedCriteria和Criteria是Hibernate框架中两个重要的查询工具,用于动态生成SQL语句,进行查询。在Web编程中,DetachedCriteria和Criteria可以解决动态条件查询的问题,提高程序的灵活性和可维护性。 ...
在Java世界中,Criteria API是JPA(Java Persistence API)的一部分,用于构建动态、类型安全的查询。这个“Criteria标准化对象查询小例子”提供了一个实际应用Criteria API的示例,帮助开发者理解如何利用它来执行...
- **定义**:`DetachedCriteria`是一种离线的标准查询API,它可以在没有Session的情况下创建并配置查询。 - **创建方式**:通过`DetachedCriteria.forClass(Class)`或`DetachedCriteria.forEntityName(String)`创建...
Criteria用于在线查询,直接与Hibernate Session关联,而DetachedCriteria则可在不依赖Session的情况下创建,适用于离线或延迟执行的查询。DetachedCriteria可以通过`forClass(Class)`或`forEntityName(String)`静态...
- **DetachedCriteria**:为离线创建,不依赖于`Session`。这使得开发者可以在任何地方预定义查询条件,之后再将这些条件应用于`Session`中执行查询,增加了代码的可读性和复用性。`DetachedCriteria`通过`forClass...
Criteria API还可以与其他查询方式结合使用,比如DetachedCriteria,用于创建可延迟执行的查询,或者与Projection一起使用,获取特定字段的结果,而不仅仅是完整的实体对象。 总的来说,"09 Criteria查询方式"这个...
- **灵活性**:两者均提供了高度的灵活性,可以使用`Criterion`和`Projection`来设置查询条件和投影结果,但`DetachedCriteria`的离线特性使其在某些场景下更加灵活。 #### Criterion与Projection详解 - **...
### Hibernate-Criteria 模糊查询详解 在Java的持久化技术中,Hibernate作为ORM(对象关系映射)框架的一种,提供了强大的数据访问能力。而其中的`Criteria`接口更是为复杂的查询需求提供了一种灵活且功能强大的...
根据提供的文件信息,我们可以深入探讨Hibernate中的离线查询方法及相关知识点。下面将详细介绍这些知识点。 ### Hibernate中的离线查询 Hibernate是一种广泛使用的Java持久层框架,它极大地简化了数据库操作,...