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):它是官方推荐的查询语言.在开始写代码之前 ...
随机推荐
- Nginx针对https站点的部署
一.Nginx安装(略)安装的时候需要注意加上 --with-http_ssl_module,因为http_ssl_module不属于Nginx的基本模块.Nginx安装方法:# ./configur ...
- 常用正则表达式大全!(例如:匹配中文、匹配html)
一.常见正则表达式 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注 ...
- codevs2806 红与黑
难度等级:白银 codevs2806 红与黑 题目描述 Description 有一个矩形房间,覆盖正方形瓷砖.每块瓷砖涂成了红色或黑色.一名男子站在黑色的瓷砖上,由此出发,可以移到四个相邻瓷砖之一, ...
- KindEditor得不到textarea值的解决方法
转自:http://blog.phpha.com/archives/510.html 以前有朋友遇到过这个问题,就是KindEditor在火狐下或者其他浏览器下都无法得到textarea文本框的值,点 ...
- JavaScript:关于事件处理程序何时可以直接访问元素的属性
指定在元素的的事件处理程序中指定 <input type="button" value="click me" onclick="alert(th ...
- Webwork 学习之路【07】文件上传下载
Web上传和下载应该是很普遍的一个需求,无论是小型网站还是大并发访问的交易网站.WebWork 当然也提供了很友好的拦截器来实现对文件的上传,让我们可以专注与业务逻辑的设计和实现,在实现上传和下载时顺 ...
- Expression Blend4经验分享:文字公告无缝循环滚动效果
这次分享一个类似新闻公告板的无缝循环滚动效果,相信很多项目都会应用到这个效果.之前我也百度了一下,网上的一些Silverlight的文字或图片滚动效果,都是一次性滚动的,如果要做到无缝循环滚动,多数要 ...
- Android系统启动分析(Init->Zygote->SystemServer->Home activity)
整个Android系统的启动分为Linux Kernel的启动和Android系统的启动.Linux Kernel启动起来后,然后运行第一个用户程序,在Android中就是init程序. ------ ...
- .Net下一个类型转换神器
引言 类型转换经常遇到,最常用的应该是string类型转换为其它基元类型,常见于http参数类型转换.Convert静态类的Convert.ChangeType()方法可以把实现IConvertibl ...
- ASP.NET网站入侵第三波(fineui系统漏洞,可导致被拖库)
注:屏蔽本漏洞的紧急通知:http://fineui.com/bbs/forum.php?mod=viewthread&tid=7863 本人小学文化,文采不好,写的不好请各位多多包含, 最近 ...