hibernate的QBC

什么是QBc:
QBC(Query By Criteria)按条件查询,通过Criteria构造查询条件,即通过调用Criteria的api实现各种查询。

通过Criteria对象拼装 查询条件,调用Criteria的add方法拼接查询条件,最终hibernate通过criteria对象自动生成sql语句。

package com.zking.crm.dao.impl;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;

import com.zking.crm.dao.CstCustomerDao;
import com.zking.crm.domain.CstCustomer;
import com.zking.crm.uilt.hibernateUtli;

public class CstCustomerDaoImpl implements CstCustomerDao {

	// @Override
	// public void insert(CstCustomer cstCustomer) {
	// // TODO Auto-generated method stub
	// Session session = hibernateUtli.openSession();// 创建一个session
	// Transaction beginTransaction = session.beginTransaction();
	// try {
	// session.save(cstCustomer);
	// beginTransaction.commit();// 提交事务
	// } catch (Exception e) {
	// // TODO: handle exception
	// e.printStackTrace();
	// beginTransaction.rollback();// 会滚事务
	//
	// } finally {
	// session.close();
	// }
	// }

	// 优化以后的增加基本客户信息
	@Override
	public void insert(CstCustomer cstCustomer) {
		Session session = hibernateUtli.getCurrentSession();// 获取与当前线程绑定的session
		session.save(cstCustomer);
	}

	@Override
	public Long findCustomerCount(DetachedCriteria detachedCriteria) {
		// TODO Auto-generated method stub
		Session session = hibernateUtli.openSession();

		Criteria criteria = detachedCriteria.getExecutableCriteria(session);// 转成可执行的对象

		criteria.setProjection(Projections.rowCount());// select Count(*) from 表名

		Long totla = (Long) criteria.uniqueResult();// 反回

		return totla;
	}

	@Override
	public List<CstCustomer> findCustomerList(DetachedCriteria detachedCriteria, int firstResult, int maxResults) {
		// TODO Auto-generated method stub
		Session session = hibernateUtli.openSession();

		Criteria criteria = detachedCriteria.getExecutableCriteria(session);// 转成可执行的对象

		criteria.setFirstResult(firstResult);// 设置其实记录

		criteria.setMaxResults(maxResults);// 设置每页显示多少条

		return criteria.list();
	}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值