hibernate select 读取结果集的两种办法
第一种:推荐:
DAO层的Hql语句如果用From.....执行出来的是一个基于Map结构的List,而用select.........执行出来的结果不是Map型的,为了方便使用、维护修改,将其转为基于Map的List。
DAO层代码如下:
- public List getSlCountList(Integer year, Integer month, String office) {
- Session session = getSession();
- String hql="SELECT office,count(*) as myCount from ReportMonth "
- + "Where (year = ?) AND (month = ?) And (office like ?) And(slsn <>'') "
- + "Group by office";
- List list = null;
- List newList=new ArrayList();
- Object[] obj;
- try {
- Query query = session.createQuery(hql);
- query.setParameter(0, year);
- query.setParameter(1, month);
- query.setParameter(2, "%" + office + "%");
- list = query.list();
- for(int i=0;i<list.size();i++){
- Map map = new HashMap();
- obj = (Object[])list.get(i);
- map.put("office", (String)obj[0]);
- map.put("myCount", (Integer)obj[1]);
- newList.add(map);
- }
- } catch (HibernateException e1) {
- newList=null;
- e1.printStackTrace();
- }
- finally{
- session.close();
- }
- return newList;
- }
JSP部分代码如下:
- <ww:iterator value="#request['slCountList']" id="slCountList">
- <tr class="tr0">
- <td height="26" width="15%"> <ww:property value="#slCountList.office"/>
- ..................
第二种:DAO代码简洁,但是在JSP中用obj[0]obj[1]表示,感觉不好,晦涩。
DAO:
- public List getSlCountList(Integer year, Integer month, String office) {
- Session session = getSession();
- String hql="SELECT office,count(*) as myCount from ReportMonth "
- + "Where (year = ?) AND (month = ?) And (office like ?) And(slsn <>'') "
- + "Group by office";
- List list = null;
- try {
- Query query = session.createQuery(hql);
- query.setParameter(0, year);
- query.setParameter(1, month);
- query.setParameter(2, "%" + office + "%");
- list = query.list();
- } catch (HibernateException e1) {
- list=null;
- e1.printStackTrace();
- }
- finally{
- session.close();
- }
- return list;
- }
JSP:
- <ww:iterator value="#request['slCountList']" id="slCountList">
- <tr class="tr0">
- <td height="26" width="15%"> <ww:property value="#slCountList[0]"/><B><font color="red">(<ww:property value="#slCountList[1]"/>座)</font></B></td>
- <td width="90%">
- .......................
转载于:https://blog.51cto.com/xuchenguang/398952
hibernate select 读取结果集的两种办法相关推荐
- Spark读取Hive数据的两种方式与保存数据到HDFS
Spark读取Hive数据的两种方式与保存数据到HDFS Spark读取Hive数据的方式主要有两种 1. 通过访问hive metastore的方式,这种方式通过访问hive的metastore元数 ...
- Ruby读取Excel文件的两种方法
用Ruby读取Excel文件的两种重要方式 1. 通常做法,查阅微软提供的API了,需要包含win32, 在ruby前加入,require 'win32ole' 例如: require 'win32o ...
- 第四章:数据存储-csv文件处理-读取csv文件的两种方式
直接学习:https://edu.csdn.net/course/play/24756/280718 csv文件处理-读取csv文件的两种方式: # 这种方式读取到的每一条数据是个列表,所以需要通过下 ...
- java读取csv文件的两种方式
java读取csv文件的两种方式 1.CsvReader读取 import com.csvreader.CsvReader; /*** CsvReader 读取* @param filePath* @ ...
- eclipse new server Cannot create a server using the selected type 网上有两种办法,其实原理一样...
eclipse new server Cannot create a server using the selected type 网上有两种办法,其实原理一样 第一种说法: 还真的找到解决的方法了, ...
- C# HttpClient设置cookies的两种办法
一般有两种办法 第一种handler.UseCookies=true(默认为true),默认的会自己带上cookies,例如 var handler = new HttpClientHandler() ...
- MSCOMM32控件注册的两种办法
当我们在VC或者VB或者VS环境下基于MSCOMM控件开发的软件发布后,是不是有种很爽的感觉,可以拿到别人的电脑上运行下你的软件,可是当你移植过去后却发现软件无法点击的动(别笑,我在开发C#软件时就是 ...
- Arduino通过USB转TTL无BootLoader烧录程序的两种办法
Arduino通过USB转TTL无BootLoader(引导程序)烧录程序的两种办法 注意 (这个实验室基于stm32duino的,avr单片机并不直接通用,不过如果你准备尝试使用串口来给avr单片机 ...
- Python超时机制两种办法
目录 1.问题 2.Python超时控制的两种办法(简单不复杂) 2.1 引入eventlet 2.2 引入func-timeout 3.总结 1.问题 最近做项目有一个问题,需要使用Python自动 ...
最新文章
- 如何利用C#开发“扫雷”小游戏
- linux里面查看llvm的版本,linux llvm安装
- 上班第一天(1)--一个程序员的成长史(10)
- CodeForces - 197A Plate Game(博弈+思维)
- python安装多久_python安装与使用
- rpm数据库异常问题总结
- 用ping IP的方法测试网卡
- java udp 工具类_java udp 简单实现
- Win10安装.net framework 4.0失败提示已是操作系统一部分解决方案
- Grub4Dos 学习笔记
- 再谈Spring(一):Bean的作用域
- Elasticsearch:如何制作 GeoJSON 文件并进行地理位置搜索
- spring boot火车票售卖系统毕业设计代码211004
- BufferedImage缩小图片大小
- 2021年高处安装、维护、拆除免费试题及高处安装、维护、拆除模拟考试题库
- 主持人大赛计算机专业,计算机系主持人大赛简报
- 纯CSS修改浏览器的默认滚动条样式
- 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps
- 我的财富自由之路 - 财富的自我认知
- php做app百度经验,fastadmin+uni-app开发记录