:利用ibatis可以做到sql和代码分离,可以设计出一个清晰的数据访问层(dal)。但项目架构是否科学合理,是否以维护,关键不在ibatis,因为它只是一个数据层框架。但是我们也不得不清楚,要想发挥ibatis的优势,我们需要做一些额外工作,比如最好设计dao接口,需要将业务层实体和对实体的访问放在不同的工程中,同时需要维护xml配置文件。滞后性:
fibatis组现在还没有提到要支持
et20,很多人在
et20下使用ibatis都出现了问题。所以如果要使用
et20开发,ibatis不是一个好选择,还需要等待。不成熟:开源的东西很难说成熟,但一般比我们自己写的框架要成熟。由于我们可以拿到他的源代码,所以关键在于我们能否驾驭它。半orm,工具支持少:这注定了ibatis不能从本质上提升开发效率,我们需要自己写sql,写实体类,写配置文件。但这也是它优越的地方,它没有为我们做的他多,所以我们就有更多的施展空间。而且它非常适合那些并不能完全控制数据库的系统和需要利用数据库本身提供的高级特性的统计查询系统的开发。使用ibatis需要自己写sql,由于我们的sql不可能完全符合sql标准,比起Hiber
ate产生的sql来,可移植性差。不过由于我们更改数据库的可能性较小,对我们来说sql符合标准以便可以在迁移到不同服务器时代价最小并不是十分必要的。另一方面,Hiber
ate虽然可以屏蔽很多数据库间的不同,但是却很难利用某些数据库的高级特性,比如oracle的分析统计函数。Hiber
ate不适合数据库模式不规范,约束不完整,需要大量复杂查询的系统,同时Hiber
ate的学习成本较高,完全掌握Hiber
ate也较困难,风险较大。自己写框架未必比ibatis的好,稳定,强大和可扩展。而且自己开发框架也需要较大的工作量。如果使用dot
et并且要选一个数据层框架,而系统中有相当一部分较复杂的sql,或数据库设计不合理,脏数据多,对性能和资源要求严格,ibatis是一个比较不错的选择。他的那些缺点并不是致命的,而且也是有一些解决方案的。尤其是,当选用了ibatis的dataaccess作为dao框架时,们可以同时使用Hiber
ate,我ado
et和datamapper(ibatis
et的核心组件),那样将会使风险降到最低,并且整个系统的框架比较合理。另外,利用ibatis可以统一编码风格,节约开发成本,大家不会再把精力浪费到分页连接池主键生成等地方了可以集中精力进行业务组件的编写。综上很多时候我们要在是自己开发框架和选用第三方框架和选用什么样的框架问题上进行综合考虑。考虑的标r