ibatis3.0GA试工感受
ibatis3.0GA试用感受
刚试用一下,基本架构和2没有大区别,有几点大的改变:
1、Dynamic Sql全部用OGNL实现,简洁很多,但有跟风之嫌,不觉得比2原创的动态机制实用,很多情况下更繁琐,另一方面,这个变更也让ibatis2的代码向3转移变得几乎不可行;
2、更简洁、清晰,但扩展性却全面增强,很多核心类都能基于接口进行替换,说明整个设计水准提高很多;
3、可选的Annotation编程方式,除了Mapper接口在编程时有点效率方面的优势外,基本是跟风的鸡肋。
4、多个数据库/源的支持从主配置文件上清晰的给予定义:environments标签。
5、级联嵌套Mapping机制有很大的增强,新的association标签十分强大。
6、别致、强大的SelectBuilder,拼写sql的好工具。
存疑的地方:
1、内置的数据库连接池的可靠性和性能存疑,3未内置支持C3P0、DBCP等常用开源连接池,貌似iBATIS老大对新的内置数据库连接池挺有信心,源代码快速过了一下,一个大类搞定,建议商用还是换成DBCP、C3P0等。
2、性能能否超越版本2?存疑,官方没有给明确的说明,ibatis2.3后已经基于jdk1.5,08年至今,性能已经充分优化,3扩展性的极大提升、Annotation支持、OGNL的使用等因素对性能应该有一定负面影响,有兴趣的兄弟可以对比测试一下,但务必注意cache的问题,3的cache机制有很多改进。
大型的商业项目个人建议暂时不要使用3,试用过程中感觉在文档支持、最佳实践、代码质量等方面ibatis3还不够成熟,那个官方的手册也写得很随意。
BTW:配置ibatis3很简单,基本和2类似,很多人在等待Spring社区的集成,都被惯坏了,看完官方手册,10分钟就能搭建好。
h不适合做大型项目,我们一直是用ibatis,灵活!
nice ,我会尝试搭建下环境。
那是不是又回到2.0的方式了?
h不适合做大型项目,我们一直是用ibatis,灵活!
笑而不语。
刚试用一下,基本架构和2没有大区别,有几点大的改变:
1、Dynamic Sql全部用OGNL实现,简洁很多,但有跟风之嫌,不觉得比2原创的动态机制实用,很多情况下更繁琐,另一方面,这个变更也让ibatis2的代码向3转移变得几乎不可行;
2、更简洁、清晰,但扩展性却全面增强,很多核心类都能基于接口进行替换,说明整个设计水准提高很多;
3、可选的Annotation编程方式,除了Mapper接口在编程时有点效率方面的优势外,基本是跟风的鸡肋。
4、多个数据库/源的支持从主配置文件上清晰的给予定义:environments标签。
5、级联嵌套Mapping机制有很大的增强,新的association标签十分强大。
6、别致、强大的SelectBuilder,拼写sql的好工具。
存疑的地方:
1、内置的数据库连接池的可靠性和性能存疑,3未内置支持C3P0、DBCP等常用开源连接池,貌似iBATIS老大对新的内置数据库连接池挺有信心,源代码快速过了一下,一个大类搞定,建议商用还是换成DBCP、C3P0等。
2、性能能否超越版本2?存疑,官方没有给明确的说明,ibatis2.3后已经基于jdk1.5,08年至今,性能已经充分优化,3扩展性的极大提升、Annotation支持、OGNL的使用等因素对性能应该有一定负面影响,有兴趣的兄弟可以对比测试一下,但务必注意cache的问题,3的cache机制有很多改进。
大型的商业项目个人建议暂时不要使用3,试用过程中感觉在文档支持、最佳实践、代码质量等方面ibatis3还不够成熟,那个官方的手册也写得很随意。
BTW:配置ibatis3很简单,基本和2类似,很多人在等待Spring社区的集成,都被惯坏了,看完官方手册,10分钟就能搭建好。
1 楼
whaosoft
2010-04-21
只有一次系统移植用这个了 感觉和h也很像 不够我朋友说这个是不成熟产品...不知道是不是这样
2 楼
joehe
2010-04-21
连接池:bonecp这个不错
3 楼
wunan
2010-04-21
有没有和我一样纠结那个finally的?
感觉这样很不爽啊,原来一句话就能搞定的,这回非得来个try{}finally{}
感觉这样很不爽啊,原来一句话就能搞定的,这回非得来个try{}finally{}
4 楼
kaki
2010-04-21
我是期待和Spring的集成,否则用起来很不爽啊!
5 楼
lanhongbo
2010-04-21
那个缓存配了半天硬是没配起来 跟来半天也没跟明白 哎~
6 楼
melin
2010-04-21
spring3.1 会发布于ibatis3的整合。不过你现在也可以下载使用:
发一个配置实例:
这样就不需要org.example.UserDao接口就不需要有实现类了,直接使用userMapper
不过这样会有点限制,例如不能重载。
发一个配置实例:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://localhost:3306/starflow" p:username="root" p:password="000000"/> <bean id="fooService" class="org.example.Service"> <property name="userMapper" ref="userMapper" /> </bean> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="*" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="fooServiceOperation" expression="execution(* org.example.IService.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation" /> </aop:config> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="sqlSessionFactory" class="org.springframework.orm.ibatis3.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:org/example/ibatis-config.xml" /> <property name="mapperLocations" value="org/example/*Mapper.xml" /> <property name="dataSource" ref="dataSource" /> </bean> <bean id="userMapper" class="org.springframework.orm.ibatis3.support.MapperFactoryBean"> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> <property name="mapperInterface" value="org.example.UserDao" /> </bean>
这样就不需要org.example.UserDao接口就不需要有实现类了,直接使用userMapper
不过这样会有点限制,例如不能重载。
7 楼
NumbCoder
2010-04-22
whaosoft 写道
只有一次系统移植用这个了 感觉和h也很像 不够我朋友说这个是不成熟产品...不知道是不是这样
h不适合做大型项目,我们一直是用ibatis,灵活!
8 楼
yy_dan
2010-04-27
谢谢楼主的分享了,标记一个
9 楼
makemyownlife
2010-08-21
请问 ibatis 3 怎么进行事务管理?
10 楼
makemyownlife
2010-08-21
原来是有个 ibatis-dao 框架 ,现在呢?该怎么处理好,不用spring结合的话怎么处理呢?
11 楼
dixian
2010-08-25
直接使用SqlMapClient操作数据库,然后手动控制事务。
12 楼
makemyownlife
2010-08-26
dixian 写道
直接使用SqlMapClient操作数据库,然后手动控制事务。
13 楼
天刹孤星
2011-04-02
dixian 写道
直接使用SqlMapClient操作数据库,然后手动控制事务。
那是不是又回到2.0的方式了?
14 楼
jian600
2011-04-06
学习学习~~
一直学的是hibernate 没有接触过ibatis
想学学
呵呵~~
一直学的是hibernate 没有接触过ibatis
想学学
呵呵~~
15 楼
fnet
2011-04-07
NumbCoder 写道
whaosoft 写道
只有一次系统移植用这个了 感觉和h也很像 不够我朋友说这个是不成熟产品...不知道是不是这样
h不适合做大型项目,我们一直是用ibatis,灵活!
笑而不语。
16 楼
痴心豆豆
2011-04-12
3已经改名为Mybatis