hibernate_day04_08_QBC查询(查询所有)和10_QBC查询(排序和分页查询)和11_QBC查询(统计和离线查询)
2017-11-27 16:35
513 查看
08_QBC查询(查询所有)
QBC查询
1 使用hql查询需要写hql语句实现,但是使用qbc时候,不需要写语句了,使用方法实现
2 使用qbc时候,操作实体类和属性
3 使用qbc,使用Criteria对象实现
查询所有
1 创建Criteria对象
2 调用方法得到结果
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
//2 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
09_QBC查询(条件查询)
1 没有语句,使用封装的方法实现
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
criteria.add(Restrictions.eq("cid", 2));
criteria.add(Restrictions.eq("custName", "阿里巴巴"));
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}模糊查询:
// 条件查询
@Test
public void testSelect2(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
// criteria.add(Restrictions.eq("cid", 2));
// criteria.add(Restrictions.eq("custName", "阿里巴巴"));
criteria.add(Restrictions.like("custName", "%里%"));
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
Criteria criteria = session.createCriteria(Customer.class);
//criteria.addOrder(Order.asc("cid"));
criteria.addOrder(Order.desc("cid"));
//3 调用方法得到结果
List<Customer> list = criteria.list();
分页查询
// 分页
@Test
public void testSelect4(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
//2 设置分页数据
//2.1设置开始位置
//开始位置计算公式:(当前页-1)*每页记录数
criteria.setFirstResult(0);
//2.2设置每页显示记录数
criteria.setMaxResults(3);
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
统计查询
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
criteria.setProjection(Projections.rowCount());
Object obj = criteria.uniqueResult();
Long lobj = (Long) obj;
int count = lobj.intValue();
System.out.println(count);
// 统计
@Test
public void testSelect5(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
criteria.setProjection(Projections.rowCount());
Object obj = criteria.uniqueResult();
Long lobj = (Long) obj;
int count = lobj.intValue();
System.out.println(count);
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
离线查询
//1 创建query对象
//Criteria criteria = session.createCriteria(Customer.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Customer.class);
//2 最终执行的时候才需要到session
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
所有代码:com.hlg.hibernatetest.HibernateQBC
package com.hlg.hibernatetest;
import java.util.List;
import java.util.Set;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.junit.Test;
import com.hlg.entity.Customer;
import com.hlg.entity.LinkMan;
import com.hlg.utils.HibernateUtils;
public class HibernateQBC {
// 查询所有
@Test
public void testSelect1(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
//2 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
// 条件查询
@Test
public void testSelect2(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
// criteria.add(Restrictions.eq("cid", 2));
// criteria.add(Restrictions.eq("custName", "阿里巴巴"));
criteria.add(Restrictions.like("custName", "%里%"));
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
// 排序
@Test
public void testSelect3(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
//criteria.addOrder(Order.asc("cid"));
criteria.addOrder(Order.desc("cid"));
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
// 分页
@Test
public void testSelect4(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
//2 设置分页数据
//2.1设置开始位置
//开始位置计算公式:(当前页-1)*每页记录数
criteria.setFirstResult(0);
//2.2设置每页显示记录数
criteria.setMaxResults(3);
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
// 统计
@Test
public void testSelect5(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
criteria.setProjection(Projections.rowCount());
Object obj = criteria.uniqueResult();
Long lobj = (Long) obj;
int count = lobj.intValue();
System.out.println(count);
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
// 离线查询
@Test
public void testSelect6(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
//Criteria criteria = session.createCriteria(Customer.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Customer.class);
//2 最终执行的时候才需要到session
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
}
QBC查询
1 使用hql查询需要写hql语句实现,但是使用qbc时候,不需要写语句了,使用方法实现
2 使用qbc时候,操作实体类和属性
3 使用qbc,使用Criteria对象实现
查询所有
1 创建Criteria对象
2 调用方法得到结果
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
//2 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
09_QBC查询(条件查询)
1 没有语句,使用封装的方法实现
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
criteria.add(Restrictions.eq("cid", 2));
criteria.add(Restrictions.eq("custName", "阿里巴巴"));
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}模糊查询:
// 条件查询
@Test
public void testSelect2(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
// criteria.add(Restrictions.eq("cid", 2));
// criteria.add(Restrictions.eq("custName", "阿里巴巴"));
criteria.add(Restrictions.like("custName", "%里%"));
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
排序查询
//1 创建query对象Criteria criteria = session.createCriteria(Customer.class);
//criteria.addOrder(Order.asc("cid"));
criteria.addOrder(Order.desc("cid"));
//3 调用方法得到结果
List<Customer> list = criteria.list();
分页查询
// 分页
@Test
public void testSelect4(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
//2 设置分页数据
//2.1设置开始位置
//开始位置计算公式:(当前页-1)*每页记录数
criteria.setFirstResult(0);
//2.2设置每页显示记录数
criteria.setMaxResults(3);
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
统计查询
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
criteria.setProjection(Projections.rowCount());
Object obj = criteria.uniqueResult();
Long lobj = (Long) obj;
int count = lobj.intValue();
System.out.println(count);
// 统计
@Test
public void testSelect5(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
criteria.setProjection(Projections.rowCount());
Object obj = criteria.uniqueResult();
Long lobj = (Long) obj;
int count = lobj.intValue();
System.out.println(count);
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
离线查询
//1 创建query对象
//Criteria criteria = session.createCriteria(Customer.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Customer.class);
//2 最终执行的时候才需要到session
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
所有代码:com.hlg.hibernatetest.HibernateQBC
package com.hlg.hibernatetest;
import java.util.List;
import java.util.Set;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.junit.Test;
import com.hlg.entity.Customer;
import com.hlg.entity.LinkMan;
import com.hlg.utils.HibernateUtils;
public class HibernateQBC {
// 查询所有
@Test
public void testSelect1(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
//2 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
// 条件查询
@Test
public void testSelect2(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
// criteria.add(Restrictions.eq("cid", 2));
// criteria.add(Restrictions.eq("custName", "阿里巴巴"));
criteria.add(Restrictions.like("custName", "%里%"));
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
// 排序
@Test
public void testSelect3(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
//criteria.addOrder(Order.asc("cid"));
criteria.addOrder(Order.desc("cid"));
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
// 分页
@Test
public void testSelect4(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
//2 设置分页数据
//2.1设置开始位置
//开始位置计算公式:(当前页-1)*每页记录数
criteria.setFirstResult(0);
//2.2设置每页显示记录数
criteria.setMaxResults(3);
//3 调用方法得到结果
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
// 统计
@Test
public void testSelect5(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
Criteria criteria = session.createCriteria(Customer.class);
criteria.setProjection(Projections.rowCount());
Object obj = criteria.uniqueResult();
Long lobj = (Long) obj;
int count = lobj.intValue();
System.out.println(count);
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
// 离线查询
@Test
public void testSelect6(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建query对象
//Criteria criteria = session.createCriteria(Customer.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Customer.class);
//2 最终执行的时候才需要到session
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
List<Customer> list = criteria.list();
for (Customer customer : list) {
System.out.println(customer.getCid()+":::"+customer.getCustName());
}
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
}
相关文章推荐
- [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页
- hibernate_day04_05_hql查询(排序查询)和06_hql查询(分页查询和投影查询)
- Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询
- Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询
- NHibernate(2) HQL 条件查询(QBC) - 分页,统计,排序
- Hibernate的几种查询方式 HQL,QBC,QBE,离线查询,复合查询,分页查询
- Hibernate学习---第十节:Hibernate之QBC、样例查询&离线查询
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序
- Hibernate-Criteria查询(2)动态查询、排序、分页、连接查询、投影查询、聚合函数
- Hibernate- QBC离线查询
- Hibernate学习---第十一节:Hibernate之QBC、样例查询&离线查询
- Hibernate学习-07:CRUD(增删改查)操作之查询多条/所有记录HQL、QBC、SQL三种方式
- 查询自2007/10以来到2008/10的所有采购单入仓数,要求按料号,分月统计.
- 大数据量实时统计排序分页查询 优化总结
- 实现功能要求统计图书的总价,编写方法查询出在50元以上的所有图书,使用排序接口图书按照价格排序(升序排序)
- 【Oracle】day04_子查询_分页查询_DECODE_排序_集合操作_高级分组
- 浅谈ORDER排序对HIBERNATE分页查询的影响
- hibernate_QBC离线查询
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序
- HIbernate的QBC离线查询图解