- 浏览: 427538 次
- 性别:
- 来自: 云南
文章分类
- 全部博客 (143)
- zk (22)
- jpbm (1)
- cas (4)
- sql (18)
- Hibernate (21)
- Elcipse (7)
- Android (1)
- 综合 (11)
- tomcat (6)
- WebService (3)
- js (4)
- weblogic (2)
- Spring (10)
- ubuntu (3)
- os (2)
- JSTL (2)
- java (10)
- css (3)
- cloud (1)
- shiro (2)
- jacob (3)
- junit (1)
- testng (3)
- 办公应用 (1)
- maven (2)
- oracle (1)
- ckplayer (1)
- 正则表达式 (1)
- poi (1)
- html (1)
- jquery (1)
最新评论
-
aionbo:
我按你们说的也改成x86了,但还是报同样的错
跟开涛学shiro遇到异常Cannot find any provider supporting AES/CBC/PKCS5Padding【解决】 -
纵观全局:
完美解决,谢谢
跟开涛学shiro遇到异常Cannot find any provider supporting AES/CBC/PKCS5Padding【解决】 -
Blod123:
看来 还是一步步跟,我也跟了,只是没有跟到你那么深
跟开涛学shiro遇到异常Cannot find any provider supporting AES/CBC/PKCS5Padding【解决】 -
hellobleach:
楼主有没有下载的hibernate中文版 chm的下载的文件啊 ...
Hibernate注解帮助文档 -
jsd_lxf:
挺全的,感谢作者
JSTL详解
HQL查询方式
这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多。条件查询、分页查询、连接查询、嵌套查询,写起来与SQL语法基本一致,唯一不同的就是把表名换成了类或者对象。其它的,包括一些查询函数(count(),sum()等)、查询条件的设定等,全都跟SQL语法一样。
示例:
1: Session session = SessionFactory.getCurrentSession();
2: User user = null;
3: Transaction ts = session.beginTransaction();
4: try {
5: Query query = session.createQuery("from User as u where name='ijse'");
6: user= (User) query.list().get(0);
7: session.commit();
8: } catch (HibernateException ex) {
9: ts.rollBack();
10: ex.printStackTrace();
11: }
12: System.out.println(user.getName());
QBC(Query By Criteria) 查询方式
这种方式比较面向对象方式,重点是有三个描述条件的对象:Restrictions,Order,Projections。使用QBC查询,一般需要以下三个步骤:
- 使用Session实例 的createCriteria()方法创建Criteria对象
- 使用工具类Restrictions的方法为Criteria对象设置查询条件,Order工具类的方法设置排序方式,Projections工具类的方法进行统计和分组。
- 使用Criteria对象的list()方法进行查询并返回结果
Restrictions类的常用方法:
方法名称 |
描述 |
Restrictions.eq | 等于 |
Restrictions.allEq | 使用Map,Key/Valu进行多个等于的比对 |
Restrictions.gt | 大于 |
Restrictions.ge | 大于等于 |
Restrictions.lt | 小于 |
Restrictions.le | 小于等于 |
Restrictions.between | 对应SQL的between |
Restrictions.like | 对应SQL的like |
Restrictions.in | 对应SQL的in |
Restrictions.and | and关系 |
Restrictions.or | or关系 |
Restrictions.sqlRestriction | SQL限定查询 |
Order类的常用方法:
方法名称 |
描述 |
Order.asc | 升序 |
Order.desc | 降序 |
Projections类的常用方法
方法名称 |
描述 |
Projections.avg | 求平均值 |
Projections.count | 统计某属性的数量 |
Projections.countDistinct | 统计某属性不同值的数量 |
Projections.groupProperty | 指定某个属性为分组属性 |
Projections.max | 求最大值 |
Projections.min | 求最小值 |
Projections.projectionList | 创建一个ProjectionList对象 |
Projections.rowCount | 查询结果集中的记录条数 |
Projections.sum | 求某属性的合计 |
示例:
1: Session session = SessionFactory.getCurrentSession();
2: User user = null;
3: Transaction ts = session.beginTransaction();
4: try {
5: Criteria criteria = session.createCriteria(User.class);
6: criteria.add(Restrictions.eq("name","ijse"));
7: user= (User) criteria.list().get(0);
8: session.commit();
9: } catch (HibernateException ex) {
10: ts.rollBack();
11: ex.printStackTrace();
12: }
13: System.out.println(user.getName());
1: Session session = SessionFactory.getCurrentSession();
2: User user = null;
3: Transaction ts = session.beginTransaction();
4: try {
5: Criteria criteria = session.createCriteria(User.class);
6: criteria.add(Restrictions.eq("name","ijse"));
7: user= (User) criteria.list().get(0);
8: session.commit();
9: } catch (HibernateException ex) {
10: ts.rollBack();
11: ex.printStackTrace();
12: }
13: System.out.println(user.getName());
QBE(Query By Example)查询方式
将一个对象的非空属性作为查询条件进行查询。
示例:
1: Session session = SessionFactory.getCurrentSession();
2: User user = new User();
3: user.setName("ijse");
4: Transaction ts = session.beginTransaction();
5: try {
6: Criteria criteria = session.createCriteria(User.class);
7: criteria.add(Example.create(user));
8: user= (User) criteria.list().get(0);
9: session.commit();
10: } catch (HibernateException ex) {
11: ts.rollBack();
12: ex.printStackTrace();
13: }
14: System.out.println(user.getName());
1: Session session = SessionFactory.getCurrentSession();
2: User user = new User();
3: user.setName("ijse");
4: Transaction ts = session.beginTransaction();
5: try {
6: Criteria criteria = session.createCriteria(User.class);
7: criteria.add(Example.create(user));
8: user= (User) criteria.list().get(0);
9: session.commit();
10: } catch (HibernateException ex) {
11: ts.rollBack();
12: ex.printStackTrace();
13: }
14: System.out.println(user.getName());
离线查询
离线查询就是建立一个DetachedCriteria对象,将查询的条件等指定好,然后在session.beginTransaction()后将这个对象传入。通常这个对象可以在表示层建立,然后传入业务层进行查询。
示例:
1: DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
2: detachedCriteria.add(Restrictions.eq("name","ijse");
3:
4: Session session = SessionFactory.getCurrentSession();
5: User user = new User();
6: Transaction ts = session.beginTransaction();
7: try {
8: Criteria criteria = detachedCriteria.getExecutableCriteria(session);
9: user= (User) criteria.list().get(0);
10: session.commit();
11: } catch (HibernateException ex) {
12: ts.rollBack();
13: ex.printStackTrace();
14: }
15: System.out.println(user.getName());
1: DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
2: detachedCriteria.add(Restrictions.eq("name","ijse");
3:
4: Session session = SessionFactory.getCurrentSession();
5: User user = new User();
6: Transaction ts = session.beginTransaction();
7: try {
8: Criteria criteria = detachedCriteria.getExecutableCriteria(session);
9: user= (User) criteria.list().get(0);
10: session.commit();
11: } catch (HibernateException ex) {
12: ts.rollBack();
13: ex.printStackTrace();
14: }
15: System.out.println(user.getName());
复合查询
复合查询就是在原有查询的基础上再进行查询,可以调用Criteria对象的createCriteria()方法在这个Criteria对象的基础上再进行查询。
示例:
1: Session session = SessionFactory.getCurrentSession();
2: User user = new
3: User();
4: Transaction ts = session.beginTransaction();
5: try
6: {
7: Criteria criteria1 =
8: session.createCriteria(Room.class);
9: Criteria
10: criteria2 =criterial1.createCriteria("User");
11:
12: criteria2.add(Restrictions.eq("name",new String("ijse"));
13:
14: user= (User) criteria.list().get(0);
15:
16: session.commit();
17: } catch (HibernateException ex) {
18:
19: ts.rollBack();
20:
21: ex.printStackTrace();
22: }
23: System.out.println(user.getName());
分页查询
分页查询主要是要指定两个参数:从第几条数据开始,取多少条数据。可以通过调用Query或者Criteria对象的setFirstResult()和setMaxResults()方法分别进行设定。
示例:
1: Session session = SessionFactory.getCurrentSession();
2: List userList = null;
3: Transaction ts = session.beginTransaction();
4: try {
5: Criteria criteria = session.createCriteria(User.class);
6: criteria.setFirstResult(0);//从第一个数据开始
7: criteria.setMaxResults(10);//取10条记录
8: userList = (List) criterial.list();
9: session.commit();
10: } catch (HibernateException ex) {
11: ts.rollBack();
12: ex.printStackTrace();
13: }
转自:http://blog.csdn.net/iijse/article/details/6161143
1: Session session = SessionFactory.getCurrentSession();
2: List userList = null;
3: Transaction ts = session.beginTransaction();
4: try {
5: Criteria criteria = session.createCriteria(User.class);
6: criteria.setFirstResult(0);//从第一个数据开始
7: criteria.setMaxResults(10);//取10条记录
8: userList = (List) criterial.list();
9: session.commit();
10: } catch (HibernateException ex) {
11: ts.rollBack();
12: ex.printStackTrace();
13: }
转自:http://blog.csdn.net/iijse/article/details/6161143
发表评论
-
Hibernate3 Template Dao
2017-02-23 17:10 695package com.king.stt.dao; i ... -
关于spring+hibernate的FlushMode的记录
2015-12-15 16:23 810参见hibernate的api说明https://www.h ... -
spring hibernate properties详解
2015-12-15 16:22 781spring hibernate properties详解 ... -
hibernate unique配置不起作用解决方法
2015-05-29 14:45 1420hibernate unique配置 ... -
有关Hibernate3.3.2与4.1.10测试
2013-04-26 10:18 868http://wenku.baidu.com/view/3 ... -
Hibernate注解帮助文档
2012-08-23 11:02 3840官网:http://www.hibernate.org ... -
HQL: Hibernate查询语言
2012-03-12 21:05 0HQL查询 节 10.01 单表HQL查询 ... -
java.lang.ClassNotFoundException: org.junit.Assume$AssumptionViolatedException
2012-03-04 21:37 8420_____构造方法“惹的祸” ___________ ... -
HQL: select子句
2012-03-04 21:19 1210查询语句可以返回值为任何类型的属性或对象,包括返回类型为某种组 ... -
HQL: Hibernate查询语言
2012-03-04 17:42 918Hibernate配备了一种非常强大的查询语言,这种语言看上去 ... -
Hibernate3.X使用weblogic布署相关问题解决2
2012-02-27 18:45 1656在(1)篇发表之后,还以为万事大吉了(注:那时(1)中的配置文 ... -
Hibernate3.X使用weblogic布署相关问题解决
2012-02-14 14:27 1781前几天一直困扰我一个问题,项目从tomcat上移植到webl ... -
Hibernate3的配置参数汇总的简介与内容
2011-08-30 12:31 9491、Hibernate JDBC属性属性名 用途 hibern ... -
搭建SSH,SSZ架构需注意数据库的编码问题
2011-08-26 11:12 1261搭建了一个Hibernate+Spring+ZKjsp的框架, ... -
hibernate映射千万注意(不能用关键字声明属性)
2011-08-20 12:09 1014lock,explain.....(陆续添加) 等在MYSQ ... -
JPA & Hibernate 注解
2011-08-19 10:08 9671、@Entity(name="Enti ... -
hibernate 注解生成表
2011-08-15 11:44 2217JPA注解,转自:http://zhaoke0427.blog ... -
Hibernate锁机制_悲观锁和乐观锁
2011-08-11 18:06 9851、Pessimistic Locking 悲观锁; ... -
Hibernate中Criteria的完整用法
2011-08-09 12:44 1003在项目中使用 Spring 和 Hibernate 进行开 ... -
Hibernate 异常 :java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
2011-07-16 20:54 6040严重: Exception sending context i ...
相关推荐
标题中的“Hibernate-HQL-QBC-QBE”涵盖了四个重要的Java持久化框架Hibernate中的概念,分别是Hibernate Query Language(HQL)、Query By Criteria(QBC)、Query By Example(QBE)以及相关的库文件。以下是对这些...
在Hibernate中,HQL(Hibernate Query Language)是专为ORM设计的一种面向对象的查询语言,它允许开发者以类和对象的方式进行数据查询,而不是直接使用SQL。本资料主要涵盖了Hibernate HQL查询的基本概念、语法以及...
hibernate-HQL语句大全
例如,假设有一个基类`Animal`,并且有`Cat`、`Dog`等派生类继承自`Animal`,那么可以通过以下方式查询所有`Animal`类型的实例: ```hql from com.test.Animal as animal ``` 这将返回所有继承自`Animal`的实体。 ...
Hibernate 查询语言 HQL(Hibernate Query Language)是Hibernate框架提供的一种面向对象的查询语言,它是对SQL的封装,使得开发者可以使用面向对象的方式来处理数据库查询,避免了直接操作SQL带来的复杂性和对象与...
SSH笔记-HQL查询(基于位置参数查询、基于命名参数查询、分页查询、命名查询、投影查询报表查询、内/迫切内/左外/迫切左外连接查询)、QBC(QBC检索查询、统计查询、排序查询、HQL操作数据库)、本地SQL查询
总结来说,QBC和QBE是Hibernate提供的两种实用查询方式,分别适合不同的场景。QBC适用于需要动态构建查询条件的场合,而QBE则在简单查询中表现出其易用性。理解和掌握这两种查询方式,对于提升Hibernate开发效率和...
本篇文档将深入探讨Hibernate中的HQL(Hibernate Query Language),一种面向对象的查询语言,它提供了与SQL类似的语法,但更贴近于面向对象的思维模式,使得开发者可以更加便捷地进行数据查询。 一、HQL简介 HQL是...
【标题】"hibernate-hql-lucene-1.0.1.Final.zip" 提供的是一个关于Hibernate HQL与Lucene集成的开源项目版本,主要用于在Java应用程序中实现高效、复杂的全文搜索功能。 【描述】"pact-jvm.zip,pact模型" 指的是...
Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码
hibernate查询-hql等教程,对于学习hibernate有很好的帮助。
【标题】"hibernate-hql-testing-1.0.0.Alpha5.zip" 提供的是Hibernate框架的一个测试工具包,专注于HQL(Hibernate Query Language)的测试。Hibernate是Java领域中广泛使用的对象关系映射(ORM)框架,它允许...
hibernate3-hql.jar .
本话题主要聚焦于`Hibernate02`,涵盖`Session`对象、HQL(Hibernate Query Language)查询以及在线查询和离线查询的概念。 首先,我们来详细讨论`Session`对象。在Hibernate中,`Session`是应用程序与数据库之间的...
HQL允许开发者以对象的方式查询数据,避免了直接编写SQL语句带来的困扰。HQL语句中的实体类名对应于数据库中的表名,属性对应于列名。这使得代码更加面向对象,易于维护。 2. **基本查询结构** HQL的基本查询结构...
Hibernate 支持多种方式来实现多表连接查询,包括 HQL(Hibernate Query Language)和 Criteria 查询。本项目主要关注 Criteria API 的使用,这是一种基于 Java 对象的查询方式,更加灵活且易于理解和维护。 **...
JPA(Java Persistence API)是一种JavaEE标准,用于持久化数据,HQL(Hibernate Query Language)是 Hibernate 框架提供的一种查询语言,它允许开发者使用面向对象的方式查询数据库。HQL 查询是 JPA 中的一种查询...
5. **Criteria查询**: 除了传统的HQL(Hibernate查询语言),Hibernate还提供了Criteria API,一种更面向对象的查询方式,允许动态构建查询条件。 6. **第二级缓存**: Hibernate支持二级缓存,可以提高数据读取速度...
Hibernate支持以下几种连接查询方式: 1. **内连接(Inner Join)**:`INNER JOIN` 或 `JOIN` ```java String hql = "SELECT s.stuName, e.examScore FROM Student s JOIN Exam e ON s.stuID = e.stuID"; ``` 2....