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的魅力.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值