Spring批量查询

对于大批量数据查询,我们需要绕开Hibernate API,直接使用JDBC.使用SpringJdbcTemplatequeryForList()方法也是很好的选择.当然整合好Spring,StrutsHibernate是一门艺术,需要在实践中不断的总结和领略它们的风采.

业务说明:统计出一段时间内,全市每个缴费区域各种数据类型的记录数.在页面通过表格的形式显示出来,没有记录的通过0填充.如图

区县

业务1变更

业务2变更

业务3变更

业务4变更

区县1

0

0

0

0

区先2

2

0

2

0

全市

2

0

2

0

系统原来使用hibernate实现的代码

数组payarea存放着各个缴费区域

数组datatype存放着各个数据类型

上面方法调用的方法

上面代码的思路是通过两个for循环遍历全市下每个缴费区域的数据类型,每一次循环都要调用countReportInfo方法返回记录数,最后存放到Map.

通过这种方式实现统计查询时间需要10秒左右,这是用户根本不能忍受的.原因是HQL查询是面向对象的查询的方法,中间有一个映射转换,这不是最重要的.最重要的是两个for循环.每次循环需要不断的调用方法,不断的和数据库交换数据.这种做法不仅需要消耗大量的资源,还和费时间.为此我们使用Spring提供的方法

使用Spring重写的代码,统计速度有本质的提升

首先使用SQL语言查询出每个缴费区域下有记录的数据类型的记录数

上面方法调用的方法

使用这种方法统计消耗的时间用户感觉不出来,原因是:通过一条sql语言直接面向数据库查询出来,然后对查询出来的数据进行了包装,这个包装有点像适配器”,也符合软件开发的思想.在这里我们也领略到了Spring的魅力.

你可能感兴趣的:(spring)