您的位置:首页 > 其它

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();
}

}

排序查询

//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();
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐