日期:2014-05-20  浏览次数:20605 次

谈谈spring+jdbc vs spring+ibatis的框架
我现在做个系统用spring+jdbc+ibatis+hibernate
jdbc 和ibatis 主要用于查询,hibernate数据的保存。
但在实际应用中发现,ibatis的查询sql是要比直接写jdbc查慢很多,差10倍左右。不知道是解析sql的问题,还是执行上的问题。

jdbc快,但sql不好维护。ibatis,sql好维护,并且可以实现很多sql通用。我现在的想法是,如果可以直接用ibatis的思想来维护sql,这样就可以直接用spring+jdbc+ajax(dwr),sql文件也不静态加载,直接放在web页面目录上,这样开发起来改就不需要重启。

大家一起讨论下

------解决方案--------------------
spring+jdbc
那事务处理哪?
------解决方案--------------------
Ibatis 对JDBC的一个封装。。。在执行SQL的时候必须先执行它自已内部已经封装好的的代码,然后再执行SQL , 所以从速度上说肯定要慢于JDBC , 至于慢多少, 我就不得而知了。。。

对于第二点。。。如果你用动态加载的话, 那么,我个人认为从效率上说会比静态加载会慢! 每且每个需要加载此配置文件中都得加载一次。。。这样效率很低!!
------解决方案--------------------
这样开发起来改就不需要重启。

开发环境配置成 reloadable 就不需要重启了。

正式环境可不能这么乱搞的!
------解决方案--------------------
是正式环境么?
还是生产环境?
总之不建议采用jdbc!至于原因就说一点,以后的扩展和重用!
------解决方案--------------------
ibatis的查询sql是要比直接写jdbc查慢很多,差10倍左右

楼主能说说你是怎么测试的,怎么有那么多的差距
------解决方案--------------------
前几天我也在jdbc也ibatis中做抉择
其实ibatis就是jdbc 只是做了非常轻的一层封装
效率方面 ibatis只比jdbc慢一点点(几乎可以忽略)
而且还有可配置缓存的接口
当然没有hibernate那样的对象缓存
------解决方案--------------------
有了hibernate还用什么ibatis和jdbc啊
写sql多麻烦的一件事情
------解决方案--------------------
从执行效率上看,肯定jdbc>ibatis>hibernate,hi使用了缓存,某些操作会比jdbc快.
维护方便性方面jdbc<ibatis<hibernate

楼主的系统过于复杂了,选个合适的用就可以了,三个都用对维护不利
------解决方案--------------------
引用楼主 lansb1 的帖子:
但在实际应用中发现,ibatis的查询sql是要比直接写jdbc查慢很多,差10倍左右。不知道是解析sql的问题,还是执行上的问题。

------解决方案--------------------
有了Hibernate就不用其他的了,不过用底层的jdbc效率是蛮高的
看你们自己的情况了