日期:2014-05-16  浏览次数:20504 次

为什么使用ibatis而不用spring jdbcTemplate
第一:ibatis仅仅是对jdbc薄薄的一层封装,完全不丧失sql的灵活性
第二:ibatis所有的sql都可以放在配置文件中,这样有利于sql的集中管理,特别是在sql tuning是很容易把得到所有的sql,如果使用spring jdbctemplate,那么难免要在sql adv上调试好了sql,然后在粘贴到java代码中,会有一大堆的StringObj+=和 StringBufferObj.append() ,如果sql 很长,那么总是copy , paste 也很烦,ibatis没有这样的问题。
第三:ibatis可以把查出的结果集自动mapping成po,不用写一行代码,只需配置一下ResultMap参数即可,而jdbcTemplate大多数情况都要手动的mapping或者实现MappingSqlQuery,ResultSetExtractor等,无论如何都要编程,这些都是体力活,如果使用了ibatis,这些体力活完全可以省去。
第四:ibatis内置cache机制,同时还可以和osCache集成,cache的也是可以配置的,如果配置得当可以大大提高程序性能。
第五:ibatis支持动态sql,不需要在java里有那么多if, else,完全配置
2 楼 galaxystar 2006-09-21  
顶楼主,写得太好了!
3 楼 simbasun 2006-09-21  
正在准备从Hibernate转向iBatis。
不过ibatis好像对分页查询作的不是很好,不知道有没有best practice.
4 楼 刑天战士 2006-09-21  
Ivan Li 写道

第三:ibatis可以把查出的结果集自动mapping成po,不用写一行代码,只需配置一下ResultMap参数即可,而jdbcTemplate大多数情况都要手动的mapping或者实现MappingSqlQuery,ResultSetExtractor等,无论如何都要编程,这些都是体力活,如果使用了ibatis,这些体力活完全可以省去。



其实配合DbUtils也可以的,挺方便的,jdbc+Dbutils+dbcp,价格便宜量又足,想当年我一直用它……
5 楼 IvanLi 2006-09-21  
刑天战士 写道
Ivan Li 写道

第三:ibatis可以把查出的结果集自动mapping成po,不用写一行代码,只需配置一下ResultMap参数即可,而jdbcTemplate大多数情况都要手动的mapping或者实现MappingSqlQuery,ResultSetExtractor等,无论如何都要编程,这些都是体力活,如果使用了ibatis,这些体力活完全可以省去。



其实配合DbUtils也可以的,挺方便的,jdbc+Dbutils+dbcp,价格便宜量又足,想当年我一直用它……


DbUtils如何做,请赐教!共同进步
6 楼 IvanLi 2006-09-21  
simbasun 写道
正在准备从Hibernate转向iBatis。
不过ibatis好像对分页查询作的不是很好,不知道有没有best practice.


http://www.iteye.com/topic/22079
这里有一点讨论,希望对你有帮助,ibatis的分页不是物理分页,最好自己写
7 楼 galaxystar 2006-09-21  
ibatis可以传入参数,靠sql来分页!mysql,oracle都支持!
不支持的数据库,加一个自增的ID,(非一般主键ID)!
如果有在用物理删除的话,我暂时没想到,不过M,O2个数据库我想已经足够了!
8 楼 IvanLi 2006-09-21  
galaxystar 写道
ibatis可以传入参数,靠sql来分页!mysql,oracle都支持!
不支持的数据库,加一个自增的ID,(非一般主键ID)!
如果有在用物理删除的话,我暂时没想到,不过M,O2个数据库我想已经足够了!

能否share一个例子?
9 楼 IvanLi 2006-09-21  
Ivan Li 写道
刑天战士 写道
Ivan Li 写道

第三:ibatis可以把查出的结果集自动mapping成po,不用写一行代码,只需配置一下ResultMap参数即可,而jdbcTemplate大多数情况都要手动的mapping或者实现MappingSqlQuery,ResultSetExtractor等,无论如何都要编程,这些都是体力活,如果使用了ibatis,这些体力活完全可以省去。



其实配合DbUtils也可以的,挺方便的,jdbc+Dbutils+dbcp,价格便宜量又足,想当年我一直用它……


DbUtils如何做,请赐教!共同进步

看了DbUtils,觉得他和spring jdbcTemplate思路相似,但是感觉还是jdbctemplate更方便,如果让我在spring jdbcTemplate和DbUtils里选一个,我选spring jdbcTemplate
10 楼 baizhan 2006-10-18  
呵呵..理由充分...IBATIS值得学习一下..
11 楼 jacshan 2006-10-22