可提高IBATIS性能的几个细节

1.强烈建议使用parameterClass(除非没必要)。通过提供parameterClass,您可以获得更好的性能,因为如果框架事先知道这个类,就可以优化自身的性能。 2.resultMap中columnIndex 属性的使用,某些JDBC Driver可以大幅提高性能,某些则没有任何效果。 3.不要使用隐式的ResultMap,因为resultClass的自动映射也对性能有轻微的不利影响。因为读取ResultSetMetaData信息会使某些JDBC Driver变慢。 4.涉及到复杂类型属性查询时,如果产生了N+1式select,可以用联合查询和嵌套的属性映射来代替(1:1select),但是,更好的办法是使用延迟加载和字节码增强选项的子查询。但是,如果要缓存查询结果,则使用子查询(N+1式select)来缓存查询结果。(?) 5.尽量避免复杂类型集合属性的使用,这种查询的效率很低(是典型的N+1select)。 6.为了提高性能,最好是手工明确地使用SqlMapClient的startTransaction(),commitTransaction()或rollbackTransaction()来划分事务范围,这样做可以减少连接池的通讯流量和数据库连接的初始化。 7.自己实现分页查询,不要使用iBatis自带的分页查询(queryForPaginatedList)和queryForList(String,int,int)。前者虽然实现了通过rowResult的分页,但是毕竟是通过jdbc的调用,不如直接通过sql语句的分页效率高(这在通过对海量数据库记录表进行查询是会有明显体现);后者更是将全部的记录读出到内存,再通过skip和max参数来分页,效率极低。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值