HQL多种查询实现
1、返回int
- public int countByUsername(String username) {
- String hql = "select count(*) from BeanCarUser bean where bean.userName=:username";
- Query query = getSession().createQuery(hql);
- query.setParameter("username", username);
- return ((Number) query.iterate().next()).intValue();
- }
2、返回list集合
- @SuppressWarnings("unchecked")
- public List<CmsZfysj> findByZqmj(String zqmj, Date clsj) {
- Finder f = Finder.create("from CmsZfysj bean where 1=1 ");
- if (null != zqmj && !"".equals(zqmj)) {
- f.append(" and bean.police_id like :zqmj");
- f.setParam("zqmj", "%" + zqmj + "%");
- }
- if (null != clsj && !"".equals(clsj)) {
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
- f.append(" and TO_CHAR(bean.import_time,'yyyy-MM-dd') >= '"
- + df.format(clsj) + "'");
- }
- if (null != clsj && !"".equals(clsj)) {
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
- f.append(" and TO_CHAR(bean.capture_time,'yyyy-MM-dd') <= '"
- + df.format(clsj) + "'");
- }
- return find(f);
- }
3、多表关联查询返回List
(1)多表关联查询list
- @SuppressWarnings("unchecked")
- public List<BeanCompanyEmp> getListCompanyIsNull(BeanCompanyEmp beanCompanyEmpParam) {
- StringBuffer sql = new StringBuffer();
- sql.append(" select ");
- sql.append(" cemp.id ,cemp.doc_no ,jux.mobile ,jux.comefrom,jux.realname,jr.role_name ,cemp.latitude latitude ,cemp.longitude longitude ");
- sql.append(" from company_emp cemp, ");
- sql.append(" jc_user jc, ");
- sql.append(" jc_user_ext jux, ");
- sql.append(" jc_role jr, ");
- sql.append(" jc_user_role jur ");
- sql.append(" where cemp.id = jc.user_id ");
- sql.append(" and cemp.id = jux.user_id ");
- sql.append(" and jur.user_id = jc.user_id ");
- sql.append(" and jur.role_id = jr.role_id ");
- sql.append(" and cemp.belong_company is null ");
- String sqls = sql.toString();
- Query query = sessionFactory.getCurrentSession().createSQLQuery(sqls.toString());
- List list = query.list();
- List<BeanCompanyEmp> result=new ArrayList<BeanCompanyEmp>();
- if(list!=null&&list.size()>0){
- for (Object object : list) {
- int i = 0;
- BeanCompanyEmp modell=new BeanCompanyEmp();
- Object[] temp = (Object[]) object;
- modell.setId(Integer.parseInt( temp[i++] +""));
- modell.setDoc_no(String.valueOf(temp[i++]));
- modell.setMobile(String.valueOf(temp[i++]));
- modell.setComefrom(String.valueOf(temp[i++]));
- modell.setRealName(String.valueOf(temp[i++]));
- modell.setRoleNames(String.valueOf(temp[i++]));
- modell.setLatitude(String.valueOf(temp[i++]));
- modell.setLongitude(String.valueOf(temp[i++]));
- result.add(modell);
- }
- }
- return result;
- }
(2)多表查询带分页功能
- public Pagination getLookPage(BeanCompanyEmp beanCompanyEmpParam, int pageNo, int pageSize) {
- Pagination pagination = new Pagination();
- StringBuffer sql = new StringBuffer();
- sql.append(" select ");
- sql.append(" cemp.id id,cemp.doc_no doc_no,jux.mobile mobile,jux.comefrom comefrom,jux.realname realname,jr.role_name role_name ");
- sql.append(" from company_emp cemp, ");
- sql.append(" jc_user jc, ");
- sql.append(" jc_user_ext jux, ");
- sql.append(" jc_role jr, ");
- sql.append(" jc_user_role jur ");
- sql.append(" where cemp.id = jc.user_id ");
- sql.append(" and cemp.id = jux.user_id ");
- sql.append(" and jur.user_id = jc.user_id ");
- sql.append(" and jur.role_id = jr.role_id ");
- sql.append(" and cemp.belong_company is null ");
- //TODO这最好查询角色名称
- if(beanCompanyEmpParam.getDoc_no() != null && beanCompanyEmpParam.getDoc_no() != ""){
- sql.append(" and cemp.doc_no like '%"+beanCompanyEmpParam.getDoc_no()+"%'" );
- }
- if(beanCompanyEmpParam.getRealName() != null && beanCompanyEmpParam.getRealName() != ""){
- sql.append(" and jux.realname like '%"+beanCompanyEmpParam.getRealName()+"%'" );
- }
- String sqls = sql.toString();
- Query query = sessionFactory.getCurrentSession().createSQLQuery(sqls.toString());
- List list = query.list();
- List<BeanCompanyEmp> result=new ArrayList<BeanCompanyEmp>();
- if(list!=null&&list.size()>0){
- for (Object object : list) {
- int i = 0;
- BeanCompanyEmp modell=new BeanCompanyEmp();
- Object[] temp = (Object[]) object;
- modell.setId(Integer.parseInt( temp[i++] +""));
- modell.setDoc_no(String.valueOf(temp[i++]));
- modell.setMobile(String.valueOf(temp[i++]));
- modell.setComefrom(String.valueOf(temp[i++]));
- modell.setRealName(String.valueOf(temp[i++]));
- modell.setRoleNames(String.valueOf(temp[i++]));
- result.add(modell);
- }
- }
- pagination.setList(result);
- pagination.setPageNo(pageNo);
- pagination.setPageSize(pageSize);
- return pagination;
- }
4、获取参数Collection集合
- /**
- * 获取参数类型集合
- */
- @SuppressWarnings("unchecked")
- public Collection<Object> getList() {
- Finder f = Finder.create("select distinct bean.paramType from BeanParamManager bean where bean.dataStatus=0 and bean.sslx ='中心参数'");
- return find(f);
- }
5、返回值是void
- public void insertDayModel(Integer dayNo){
- List<Object> list = dayDao.selectParkno();
- for (Object b : list) {
- String parkNo = b.toString();
- BeanDayTraffic bean = new BeanDayTraffic();
- bean.setParkno(parkNo);
- Date date = new Date();
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- calendar.add(Calendar.DAY_OF_MONTH, +dayNo);//+1今天的时间加一天
- date = calendar.getTime();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- String sDate = sdf.format(date);
- try {
- Date dbDate = sdf.parse(sDate);
- bean.setDay_time(dbDate);
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- System.out.println(e);
- }
- bean.setTypes("Day");
- bean.setTime1(0);
- bean.setTime2(0);
- bean.setTime3(0);
- bean.setTime4(0);
- bean.setTime5(0);
- bean.setTime6(0);
- dayDao.save(bean);
- }
- }
HQL多种查询实现的更多相关文章
- Hibernate批量处理数据、HQL连接查询
一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作 数据库层面 ...
- HQL基础查询语句
HQL基础查询语句 1.使用hql语句检索出Student表中的所有列 //核心代码 @Test public void oneTest() { Query query=session.createQ ...
- hql语句查询实体类采用list方法的返回结果集
在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况:1.查询全部字段的情况下,如"from 实体类", ...
- HQL连接查询
HQL提供了连接查询机制如内连接,外连接,,还允许显示指定迫切内连接,和迫切外联结. 连接类型 内连接 inner join 或join 迫切内链接 inner join fetch 左外联结 le ...
- HQL连接查询和注解
HQL连接查询和注解 一:HQL连接查询 各种连接查询: 内连接:inner join或join From Entity inner [inner] join [fetch] Entity.prope ...
- 【学习笔记】Hibernate HQL连接查询和数据批处理 (Y2-1-7)
HQL连接查询 和SQL查询一样 hql也支持各种链接查询 如内连接 外连接 具体如下 左外连接 left (outer) join 迫切左外连接 left (outer) join fetch 右外 ...
- Castle ActiveRecord学习(五)使用HQL语句查询
来源:http://www.cnblogs.com/Terrylee/archive/2006/04/12/372823.html 一.HQL简单介绍HQL全名是Hibernate Query Lan ...
- Hibernate批量处理数据、[HQL连接查询]
一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作 数据库层面 (2)使 ...
- hibernate学习系列-----(4)hibernate基本查询上篇:HQL基本查询
紧接着上一篇,今天继续hibernate的学习总结,来聊一聊hibernate的基本查询方法,先说说HQL(hibernate Query Language):它是官方推荐的查询语言.在开始写代码之前 ...
随机推荐
- iOS运行时Runtime浅析
运行时是iOS中一个很重要的概念,iOS运行过程中都会被转化为runtime的C代码执行.例如[target doSomething];会被转化成objc)msgSend(target,@select ...
- PAT 1022. D进制的A+B (20)
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 输出格式: 输出A+B的D ...
- MySQL触发器如何正确使用
MySQL触发器如何正确使用 2010-05-18 15:58 佚名 博客园 字号:T | T 我们今天主要向大家介绍的是MySQL触发器进行正确使用,其中包括对MySQL触发器发器的语句创建,触发时 ...
- poj1190
生日蛋糕 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18230 Accepted: 6491 Description 7月1 ...
- 【MySql】存储过程添加事务
存储过程使用SQLException捕获SQL错误,然后处理: 我们可以在MySQL存储过程中捕获SQL错误,然后通过事务判断,回滚(ROLLBACK)还是提交(COMMIT). CREATE PRO ...
- ASP.NET MVC使用jQuery来POST数据至数据库中
学习ASP.NET MVC程序,结合jQuery客户端代码,Post数据至数据库去.Insus.NET今天写一个完整性的例子. 在数据库中,创建一个表[dbo].[TestUser]: 既然是把数据存 ...
- 投入Html5的怀抱,最近在研究的Egret
html5没有办法不关注,实在太火热了,几年前还不行,如今确是环境较好,typescript语言很好学习,可能基于之前的基础,不到一个星期就基本上差不多了,虽然还有一些小问题,但那都是经验积累下来可以 ...
- jquery 使用方法(转)
原文: http://www.cnblogs.com/Chenfengtao/archive/2012/01/12/2320490.html jQuery是目前使用最广泛的javascript函数库. ...
- mybatis字符串模糊匹配
1. 参数中直接加入%%,注意不需要加两个单引号,加了就会出错,因为系统会自动为字符串类型加上两个单引号 <select id="selectPersons" result ...
- Firefox about
在firefox的地址栏输入about:about,然后看一下各个链接.有的链接有具体的用途,有的链接疯言疯语,并无软用. about:about集中了火狐浏览器的全部用户界面,平时常见的prefer ...