读书人

为啥使用ibatis而不用spring jdbcTemp

发布时间: 2012-10-26 10:30:59 作者: rapoo

为什么使用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 用jdbcTemplate分页不好实现 12 楼 小贾 2006-10-23 我觉得分页还是使用与框架或者技术相对独立的方式比较好一些;这样不就可以一劳永逸了嘛!向自定义标签等等。 13 楼 bluelover 2006-10-23
Ivan Li 写道

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

支持开源,俺就把dbutil用了,非常的不错
纯粹的jdbc,灵活实用 14 楼 edusaj 2006-10-27 一般ibatis分页不用自身的分页功能,需要自己利用数据库的特性去写,比如:mysql的limit,oracle的rumnum,mssql的top,db2的rownumber等,但是在AS400上面的db2是不支持rownumber这个分页的。 15 楼 pdw2009 2006-11-23 DbUtils和ibatis思路非常想似,只不过一个是可配置一个需要程序里编写相应的脚本吧了 16 楼 lszone 2006-11-29 以前我们用的hibernate,现在也换成ibatis了 17 楼 ponderlw 2006-11-30 对于遗留系统,IBATIS的优势还是有的。
有个场景,由于效率优化,将操作表与历史记录表分离
前者是后者的部分状态数据映射。
IBATIS中的修改,针对各自操作修改SQL MAPING XML就OK了。
18 楼 oboaix 2006-11-30 理解认同一部分... 19 楼 LargeBean 2007-02-08 分页:
别人做好了通用的框架,细节我们自己搞就好了。。。。
俺要学习下IBATIS1+1 20 楼 ahuaxuan 2007-02-08 我自己的选择是,如果是中小型项目,我会用hibernate,大型项目ibatis首选,但是我实在想不出直接用jdbc的理由 21 楼 lingate 2007-02-09 喜欢,针对性强。

读书人网 >其他数据库

热点推荐