我的iBatis使用总结

EJB很重,不需要分布式的中小项目慎用,Hibernate虽好,公司缺少高水平的OO设计师,程序员水平参次不齐,iBatis是我本人比较喜好的半自动ORM东东。
持久层使用了iBatis后,团队中以前八仙过海的jdbc包装不见了,大家的编码风格统一了,会补长木桶较短的木板。大家不会再把精力浪费到分页  连接池 主键生成等地方了,可以集中精力进行业务组件的编写。 
       以下是个人感受:
       1.缓存不用太可惜,不过具体用哪一种(MEMORY  LRU  FIFO  OSCACHE)容量设多大,都得根据项目的实际情况来定,我通常用MEMORY的WEAK模式。正确设定缓存的FlushOnExecute语句,杜绝缓存中脏数据产生的可能。缓存使用前提是,系统中对表的读写一定要都通过ibatis来进行,也就是封闭的。 
       2.动态SQL的确是个强点。熟悉后感觉很不错。iBatis中所有的DAO方法都只传一个值对象,复杂查询当然也不例外。 
       3.最好要设为lazyload  =  true. 如果有复杂对象属性,对于性能上有一定的好处。 
       4.DaoManager类干了两件事:一个是getDao方法,返回一个Dao接口的实现(注意,这个接口是一个声明式接口,即没有任何接口方法),用来解藕Dao层和sqlmap实现层(是不是有点Spring倡导的Ioc的感觉);第二件事是负责在业务层中使用事务统一调度持久层的Dao方法,事务处理当然要放在serivce层,每一个service方法天然是一个事务,Dao层是和数据库直接打交道的细粒度方法。
       5.通常我会在写完Service接口后,直接写一个junit测试类,它是业务层和WEB层的界碑,进行测试很重要,一是方便重构后检测是否破坏了功能,另外,编写测试类也是一个掌握此类用法的过程。看着一排绿色的通过进度条,心情大好。 
       6.关于辅助工具:hibernate带的工具就很方便,iBatis的开发者好象觉得这个够简单了,没必要弄这么个工具。现在其官方网站的主页上有一个用Perl写的生成器,用表的DLL脚本作为源,自动化产生Pojo 和sqlMap xml配置文件,我down下来测试了一下,郁闷,60%都会报错,不知为何。我自己用Java写了一个,比较笨的法子,直接写文件,不过个人感觉够用了,需要你输入一条select语句,单表或视图都可以,生成pojo和xml文件,略加修改即可。 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值