QBC检索方式
来源:互联网 发布:java中方法的返回值 编辑:程序博客网 时间:2024/06/06 03:14
**技术分析之QBC检索方式**
0. QBC:Query By Criteria 按条件进行查询
1. 简单查询,使用的是Criteria接口
List<Customer> list = session.createCriteria(Customer.class).list();
for (Customer customer : list) {
System.out.println(customer);
}
2. 排序查询
* 需要使用addOrder()的方法来设置参数,参数使用org.hibernate.criterion.Order对象
* 具体代码如下:
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
// 设置排序
criteria.addOrder(Order.desc("lkm_id"));
List<Linkman> list = criteria.list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit();
3. 分页查询
* QBC的分页查询也是使用两个方法
* setFirstResult();
* setMaxResults();
* 代码如下;
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
// 设置排序
criteria.addOrder(Order.desc("lkm_id"));
criteria.setFirstResult(0);
criteria.setMaxResults(3);
List<Linkman> list = criteria.list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit();
4. 条件查询(Criterion是查询条件的接口,Restrictions类是Hibernate框架提供的工具类,使用该工具类来设置查询条件)
* 条件查询使用Criteria接口的add方法,用来传入条件。
* 使用Restrictions的添加条件的方法,来添加条件,例如:
* Restrictions.eq-- 相等
* Restrictions.gt-- 大于号
* Restrictions.ge-- 大于等于
* Restrictions.lt-- 小于
* Restrictions.le-- 小于等于
* Restrictions.between-- 在之间
* Restrictions.like-- 模糊查询
* Restrictions.in-- 范围
* Restrictions.and-- 并且
* Restrictions.or-- 或者
* 测试代码如下
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
// 设置排序
criteria.addOrder(Order.desc("lkm_id"));
// 设置查询条件
criteria.add(Restrictions.or(Restrictions.eq("lkm_gender", "男"), Restrictions.gt("lkm_id", 3L)));
List<Linkman> list = criteria.list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit();
5. 聚合函数查询(Projection的聚合函数的接口,而Projections是Hibernate提供的工具类,使用该工具类设置聚合函数查询)
* 使用QBC的聚合函数查询,需要使用criteria.setProjection()方法
* 具体的代码如下
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
criteria.setProjection(Projections.rowCount());
List<Number> list = criteria.list();
Long count = list.get(0).longValue();
System.out.println(count);
tr.commit();
----------
**技术分析之离线条件查询**
1. 离线条件查询使用的是DetachedCriteria接口进行查询,离线条件查询对象在创建的时候,不需要使用Session对象,只是在查询的时候使用Session对象即可。
2. 创建离线条件查询对象
* DetachedCriteria criteria = DetachedCriteria.forClass(Linkman.class);
3. 具体的代码如下
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
DetachedCriteria criteria = DetachedCriteria.forClass(Linkman.class);
// 设置查询条件
criteria.add(Restrictions.eq("lkm_gender", "男"));
// 查询数据
List<Linkman> list = criteria.getExecutableCriteria(session).list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit();
----------
0. QBC:Query By Criteria 按条件进行查询
1. 简单查询,使用的是Criteria接口
List<Customer> list = session.createCriteria(Customer.class).list();
for (Customer customer : list) {
System.out.println(customer);
}
2. 排序查询
* 需要使用addOrder()的方法来设置参数,参数使用org.hibernate.criterion.Order对象
* 具体代码如下:
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
// 设置排序
criteria.addOrder(Order.desc("lkm_id"));
List<Linkman> list = criteria.list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit();
3. 分页查询
* QBC的分页查询也是使用两个方法
* setFirstResult();
* setMaxResults();
* 代码如下;
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
// 设置排序
criteria.addOrder(Order.desc("lkm_id"));
criteria.setFirstResult(0);
criteria.setMaxResults(3);
List<Linkman> list = criteria.list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit();
4. 条件查询(Criterion是查询条件的接口,Restrictions类是Hibernate框架提供的工具类,使用该工具类来设置查询条件)
* 条件查询使用Criteria接口的add方法,用来传入条件。
* 使用Restrictions的添加条件的方法,来添加条件,例如:
* Restrictions.eq-- 相等
* Restrictions.gt-- 大于号
* Restrictions.ge-- 大于等于
* Restrictions.lt-- 小于
* Restrictions.le-- 小于等于
* Restrictions.between-- 在之间
* Restrictions.like-- 模糊查询
* Restrictions.in-- 范围
* Restrictions.and-- 并且
* Restrictions.or-- 或者
* 测试代码如下
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
// 设置排序
criteria.addOrder(Order.desc("lkm_id"));
// 设置查询条件
criteria.add(Restrictions.or(Restrictions.eq("lkm_gender", "男"), Restrictions.gt("lkm_id", 3L)));
List<Linkman> list = criteria.list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit();
5. 聚合函数查询(Projection的聚合函数的接口,而Projections是Hibernate提供的工具类,使用该工具类设置聚合函数查询)
* 使用QBC的聚合函数查询,需要使用criteria.setProjection()方法
* 具体的代码如下
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
criteria.setProjection(Projections.rowCount());
List<Number> list = criteria.list();
Long count = list.get(0).longValue();
System.out.println(count);
tr.commit();
----------
**技术分析之离线条件查询**
1. 离线条件查询使用的是DetachedCriteria接口进行查询,离线条件查询对象在创建的时候,不需要使用Session对象,只是在查询的时候使用Session对象即可。
2. 创建离线条件查询对象
* DetachedCriteria criteria = DetachedCriteria.forClass(Linkman.class);
3. 具体的代码如下
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
DetachedCriteria criteria = DetachedCriteria.forClass(Linkman.class);
// 设置查询条件
criteria.add(Restrictions.eq("lkm_gender", "男"));
// 查询数据
List<Linkman> list = criteria.getExecutableCriteria(session).list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit();
----------
阅读全文
0 0
- QBC检索方式
- QBC检索方式
- QBC检索方式
- hibernate QBC检索方式查询
- Hiberante中的QBC检索方式
- Hibernate的QBC检索方式
- HQL检索方式、QBC检索方式、SQL检索方式
- HQL检索方式、QBC检索方式、SQL检索方式
- HQL检索方式、QBC检索方式、SQL检索方式
- HQL检索方式、QBC检索方式、SQL检索方式
- Hibernate之QBC检索(查询)方式
- QBC检索
- 【Hibernate】Hibernate的检索方式:OID、HQL、QBC
- HQL和QBC和QBE + hibernate检索方式
- Hibernate的检索方式(HQL、QBC、本地SQL等)
- Hibernate检索方式之QBC(Query By Criteria)
- Hibernate的检索方式(4)QBC查询
- Hibernate深入理解----Hibernate 检索方式(HQL,QBC,本地SQL)
- Spring MVC第一节课 环境搭建
- Machine Learning on Spark——统计基础(二)
- G128的RTI时间设置
- php编程规范
- C语言读取文本文件字符串内容不对,可能是文本编码问题
- QBC检索方式
- Android 开发总结分享(一)挖坑与填坑
- SQL查询方式
- python如何利用cookies直接扒取用户登陆过后的网页
- Cannot debug application from module app on device
- 虚拟机安装linux步骤
- Docker swarm中跳出加入manage or worker的指令
- SoapUI中新建REST
- 【树状数组】poj 3067 Japan(树状数组求逆序数)