关于ibatis 和 mybatis 在使用中的一点感触
最近想学习一下ibatis(mybatis)这个所谓“半自动”的ORM框架;
我相信很多的同学跟我一样刚开始学的时候,持久层的框架是选择的hibernate。
hibernate确实很方便,但是性能和灵活性方面却比不上mybatis,所以很多公司最终是选择了mybatis或者自主封装的JDBC,再或者用spring的JDBC。
软件的开源,给其带来了无限的生机和活力。
作为持久层框架的ibatis(mybatis)也一样的充满活力,我这个门外汉也对它心驰神往,想窥探一下它的神秘。
---------------------------------------------
ibatis的易名和所属机构的迁移对其的传承性有一定的影响,但是我相信只要是足够优秀的软件,它的光芒依旧会耀眼。
刚开始学习的时候,由于ibatis早前jar包的在整合spring开发的时候会存在一些问题,而且jar分散不易于管理,在添加引用的时候总会担心冲突和遗漏,让人小心翼翼的处理,也走了不少弯路……
比如最常见的:Caused by: java.lang.NoSuchMethodError: com.ibatis.common.xml.NodeletParser.parse(Ljava/io/InputStream;)V
这样的错误。
或者com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse
(Ljava/io/InputStream;Ljava/util/Propertis)
这样类似的错误。
那是因为,在ibatis2 的 ibatis-sqlmap-2.jar 只有parse(Reader)和parse(Reader,Properties)两个方法,没有参数为Inputstream的方法或者Inputstrem,properties的方法。
现在好了,在2.3.x版本以后则整合成了一个包,ibatis-2.3.x.jar。就不会出现这种整合接口不统一的情况了。如果你使用maven管理jar包只需要添加
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>2.3.5</version>
</dependency>
加入mybatis2.3.X的jar包依赖就OK了,相当方便!
真希望mybatis能够越来越强大,尽量做到jar的稳定和统一,让我们这些初学者少走一些弯路。