`
fight_bird
  • 浏览: 3347 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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分钟就能搭建好。
分享到:
评论
16 楼 痴心豆豆 2011-04-12  
3已经改名为Mybatis
15 楼 fnet 2011-04-07  
NumbCoder 写道
whaosoft 写道
只有一次系统移植用这个了 感觉和h也很像 不够我朋友说这个是不成熟产品...不知道是不是这样

h不适合做大型项目,我们一直是用ibatis,灵活!


笑而不语。
14 楼 jian600 2011-04-06  
学习学习~~
一直学的是hibernate 没有接触过ibatis
想学学
呵呵~~
13 楼 天刹孤星 2011-04-02  
dixian 写道
直接使用SqlMapClient操作数据库,然后手动控制事务。


那是不是又回到2.0的方式了?
12 楼 makemyownlife 2010-08-26  
dixian 写道
直接使用SqlMapClient操作数据库,然后手动控制事务。

nice ,我会尝试搭建下环境。
11 楼 dixian 2010-08-25  
直接使用SqlMapClient操作数据库,然后手动控制事务。
10 楼 makemyownlife 2010-08-21  
原来是有个 ibatis-dao 框架 ,现在呢?该怎么处理好,不用spring结合的话怎么处理呢?
9 楼 makemyownlife 2010-08-21  
请问 ibatis 3 怎么进行事务管理?
8 楼 yy_dan 2010-04-27  
谢谢楼主的分享了,标记一个
7 楼 NumbCoder 2010-04-22  
whaosoft 写道
只有一次系统移植用这个了 感觉和h也很像 不够我朋友说这个是不成熟产品...不知道是不是这样

h不适合做大型项目,我们一直是用ibatis,灵活!
6 楼 melin 2010-04-21  
spring3.1 会发布于ibatis3的整合。不过你现在也可以下载使用:

发一个配置实例:
	<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
不过这样会有点限制,例如不能重载。
5 楼 lanhongbo 2010-04-21  
那个缓存配了半天硬是没配起来 跟来半天也没跟明白 哎~
4 楼 kaki 2010-04-21  
我是期待和Spring的集成,否则用起来很不爽啊!
3 楼 wunan 2010-04-21  
有没有和我一样纠结那个finally的?

感觉这样很不爽啊,原来一句话就能搞定的,这回非得来个try{}finally{}
2 楼 joehe 2010-04-21  
连接池:bonecp这个不错
1 楼 whaosoft 2010-04-21  
只有一次系统移植用这个了 感觉和h也很像 不够我朋友说这个是不成熟产品...不知道是不是这样

相关推荐

    最新的ibatis 3.0(包含源码)

    在这个"最新的ibatis 3.0(包含源码)"压缩包中,我们得到了Ibatis 3.0版本的核心库文件`ibatis-core-3.0`,这个版本是官方发布的,但需要注意的是,它与Spring 3.0.1存在兼容性问题。 Ibatis 3.0的主要改进和特性...

    ibatis3.0示例

    《深入解析iBatis 3.0:基于mybatis-jpetstore-6.0.1示例》 iBatis,又称MyBatis,是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。iBatis 3.0版本(也称为MyBatis 3.0)引入了许多新特性,极大地...

    ibatis3.0+jsp(demo)

    【标题】"ibatis3.0+jsp(demo)"是一个基于Java Web的示例项目,它结合了iBATIS 3.0数据访问框架和JSP(JavaServer Pages)技术来展示如何在实际应用中进行数据库操作。这个项目提供了一个完整的数据库交互流程,包括...

    ibatis3.0中文版文档

    ibatis3.0的中文版文档,pdf格式,很适合ibatis学习使用

    配置ibatis3.0时,发生的小错误

    在配置iBatis3.0时,可能会遇到各种小错误,这些错误往往由于不正确的配置、依赖缺失或者编码问题导致。以下是对这个主题的详细解释。 首先,让我们了解iBatis是什么。iBatis是一个优秀的持久层框架,它允许开发者...

    Ibatis3.0 增删改查(三)

    在本教程中,我们将深入探讨Ibatis 3.0框架中的增、删、改、查操作,这是关于Ibatis 3.0系列教程的第三部分。Ibatis 是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,与Java代码解耦,提高了...

    ibatis3.0中in的用法

    ### ibatis3.0中`in`的用法详解 #### 一、引言 在进行数据库查询时,经常会遇到需要根据多个值进行查询的情况,这时`IN`语句就显得尤为重要。`IN`语句可以用于判断某个字段的值是否在一个指定的列表之中,非常适用...

    ibatis3.0中文文档和英文文档

    本文将深入探讨Ibatis3.0的核心知识点,包括其设计理念、配置、SQL映射文件、动态SQL、事务管理以及与Spring的整合。 1. **设计理念**:Ibatis的目标是简化数据访问层的开发,将SQL语句和Java代码分离,通过XML或...

    ibatis 3.0 使用参考

    介绍了ibatis3.0的配置技巧,包括比较复杂的sql语句的写法。

    Ibatis3.0 增删改查(二)

    Ibatis3.0是Mybatis的前身,它提供了一种灵活的方式来映射SQL语句,使得数据库交互变得更加简单。在这个“增删改查(二)”的主题中,我们将继续上一部分的内容,详细介绍如何执行数据库的基本操作。 首先,我们...

    spring mvc3.0+ibatis3.0(基于oracle) Demo

    折腾了好几天,终于从零开始把spring mvc 3.0 + ibatis 3.0 (基于oracle)的Demo完全跑通了。Demo中有不少注释,使用的jar包基本是最精简的了。留着做个备用,也给大家一个参考!

    Ibatis3.0+spring2.5+strut2

    ### Ibatis3.0 + Spring2.5 + Struts2 整合实践 #### 一、项目背景与目的 在本篇文章中,我们将探讨如何将 Ibatis3.0(实际上是 MyBatis 的早期版本,这里可能是指 MyBatis 3.0)、Spring2.5 和 Struts2 这三个...

    IBatis学习

    IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习

    ibatis-3-core-3.0.0.242.jar.zip

    ibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zip

    struts2_spring_ibatis3.0整合

    Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的控制层、业务层管理以及数据访问层。本文将详细介绍如何将这三者进行整合,实现一个高效且灵活的Java Web应用。 Struts2是基于MVC...

    spring3.0 + ibatis+jquery+注解建立dao、service类

    标题 "spring3.0 + ibatis+jquery+注解建立dao、service类" 提供了我们讨论的核心技术栈,这是构建一个基于Java的Web应用程序的常见组合。Spring框架是核心,用于依赖注入(DI)和面向切面编程(AOP),iBatis则作为...

    Spring3.0+Ibatis+Orace全注解开发

    该文件是一个完整的Spring3.0+Ibatis+Oracle全注解式开发项目,里面详细的介绍了注解的使用,注解描述很全,下载就可以导入到您的myeclipse中运行,很好的Spring注解开发小项目

    ibatis-core-3.0.jar.zip

    《深入解析iBatis核心库:ibatis-core-3.0.jar》 iBatis,一个优秀的持久层框架,以其轻量级、易用性、灵活性等特性深受开发者喜爱。在Java开发领域,iBatis作为数据访问层的解决方案,为数据库操作提供了强大的...

Global site tag (gtag.js) - Google Analytics