DetachedCriteria离线查询离线查询---实现模糊查询 Hibernate

DetachedCriteria dc = DetachedCriteria.forClass(Emp.class);
		addJob(dc, job);
		addSal(dc, salLow, salHeight);
		addDeptno(dc, deptno);
		List emps = empDAO.findByCriteria(dc);
		request.setAttribute("empList", emps);
-----------------------------------------------------------------------
	private void addJob(DetachedCriteria dc, String job) {
		if(job != null && !job.equals("")) {
			dc.add(Restrictions.eq("job", job));
		}
	}
	
	private void addSal(DetachedCriteria dc, String sallow, String salheight) {
		if(sallow != null && !sallow.equals("") && salheight != null && !salheight.equals("")){
			dc.add(Restrictions.ge("sal", Double.parseDouble(sallow)));
			dc.add(Restrictions.le("sal", Double.parseDouble(salheight)));
		}
	}
	
	private void addDeptno(DetachedCriteria dc, String deptno) {
		if(deptno != null && !deptno.equals("")) {
			dc = dc.createCriteria("dept");
			dc.add(Restrictions.eq("deptno", Long.parseLong(deptno)));
		}
	}





---------------------------------------
public List findByCriteria(DetachedCriteria dc){
		Session session = HibernateUtil.openSession();
		Criteria c = dc.getExecutableCriteria(session);	
		return c.list();
	}	
--------------------
Hibernate二级缓存技术
1,首先在hibernate.cfg.xml中配置
<!-- JDBC批量更新或处理时 设置的批量处理的缓存大小 一级缓存基于session的-->
	<property name="jdbc.batch_size">30</property>
	<property name="jdbc.fetch_size">50</property>
	
	<property name="cache.use_query_cache">true</property>
	<property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
	
	<mapping resource="cn/veryedu/entity/Dept.hbm.xml" />
	<mapping resource="cn/veryedu/entity/Emp.hbm.xml" />
	<class-cache class="cn.veryedu.entity.Emp" usage="read-only"/>
	<class-cache class="cn.veryedu.entity.Dept" usage="read-only"/>
2,在到每个查询语句中设置
public List findAllDname(){
		Session session = HibernateUtil.openSession();
		Query query = session.createQuery("select distinct dname from Dept");
		query.setCacheable(true);//缓存设置
		List result = query.list();
		
		return result;
	}	


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值