分类: Java
2012-12-15 11:19:41
纪念iBatis 2.3.4.726版本。
网上的介绍比较多,来自官网和程序员兄弟们的文章无数,有兴趣的兄弟大可以慢慢Google。
对于我本人来说,使用iBatis仅仅是项目需要,而且iBatis比较简单,容易上手,在项目紧的情况下没有多想,就直接使用了。接触iBatis的时候不算早,当时使用的是2.3.4.726版本,是iBatis项目从apache迁移走之前发布的最后一个版本,但对于当时的项目来说,这个版本已经可以称为完美了,以至于我们项目组从08年底一直延用至今(12年底),以后假如没有大的变动,很有可能还会继续使用下去。
从我的角度看,iBatis优点和缺点如下:
优点
1) 框架轻量级,配置文件的格式简单,容易记忆;
2) 简单,上手非常快,跟着文档学习,一个星期之内就上手开发项目;
3) 丢给合作方团队一个培训胶片,不需要什么培训就可以上手使用,并且没出什么大的问题;
4) SQL与代码分离,SQL可以单独测试,不需要修改代码;
5) 动态SQL,可以依照不同的条件生成不同的SQL,非常灵活;
6) 数据和对象的自动映射,减少转换的代码量;
7) 手工优化SQL时非常方便,可以方便的应用数据库提供的特有语法;
8) 项目文档和网上的资料非常丰富,使用中不存在困难;
9) 源码可读性比较高,因而遇到难题时可以通过走读代码来分析问题;
缺点
1) 有时不容易分辨有效和无效的SQL定义,尤其在项目进度紧张、成员变动大的时候;
2) 调试动态SQL时比较麻烦,不容易测试其全部场景,修改之后需要重启应用才能重新测试,有时候触发对应的场景也需要不少的时间和心思;
3) 切换数据库时,有一定的代码修改量和测试工作量(机会比较少),但容易让人望而生畏;
4) 在大数据量时,开发人员需要对数据库有一定了解,否则开发出来的SQL有性能问题;
如下这篇文章比较火,内容倒在其次,评论反而更加精彩,有兴趣的朋友可以仔细翻看一下。
http://jiming.iteye.com/blog/41720
看了这篇帖子,就会发现在项目组内想要统一思想有多么困难。现在的问题可能不是开源软件太少,大家没办法选择;目前的问题是,摆在每一个项目经理和开发人员面前的同类型的软件太多,各有千秋,不知如何选择。对于这个问题,我没有什么好的建议,个人感觉选择什么开源软件,其实和项目成员、项目的现状有很大关系,当然但更多的还是人的问题,这时候牵涉其它的话题都是抬杠。