分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

[Hibernate] 通过 properties 类和 hql 语句进行动态查询

发布时间:2023-09-06 02:01责任编辑:白小东关键词:Hibernate
//需要保证Emp和EmpProperties中的setter和getter以及属性以及 参数占位符(:eName) 的一致
//动态查询 ???@Test ???public void test4(){ ???????EmpProperties ep=new EmpProperties(); ???????//set query conditions ???????ep.seteName("%A%"); ???????ep.setStartDate(new Date(383155200000L)); ???????ep.setEndDate(new Date()); ???????ep.setJob("CLERK"); ???????????????//1.obtain org.hibernate.Session object. ???????Session ss=HibernateUtil.getSession(); ???????????????//2.hql statement: s ???????StringBuffer hql=new StringBuffer("from Emp e where 1=1 "); ???????//3.判断EmpProperties总属性是否为null ???????if(ep.geteName()!=null){ ???????????hql.append(" and e.eName like :eName ");//e.eName和Emp中的属性保持一致|:eName和EmpProperties中的属性保持一致 ???????} ???????if(ep.getStartDate()!=null){ ???????????hql.append(" and e.hireDate>=:startDate ?"); ???????} ???????if(ep.getEndDate()!=null){ ???????????hql.append(" and e.hireDate<=:endDate "); ???????} ???????if(ep.getJob()!=null){ ???????????hql.append(" and e.job=:job"); ???????} ???????????????//执行hql语句,hql转换为String(使用toString()方法) ???????Query qr=ss.createQuery(hql.toString()); ???????//给hql语句中的参数赋值 ???????qr.setProperties(ep); ???????@SuppressWarnings("unchecked") ???????List<Emp> el= qr.list(); ???????for (Emp emp : el) { ???????????System.out.println(emp.geteName()+"\t"+ emp.getEmpNo()); ???????} ???????System.out.println("查询记录数: "+el.size()); ???????HibernateUtil.closeResource(ss); ???}

[Hibernate] 通过 properties 类和 hql 语句进行动态查询

原文地址:https://www.cnblogs.com/zienzir/p/9237831.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved