MyBatisSpring1.0.0-RC3参考文档MyBatis社区(MyBatis.org)Copyright©2010本文档的拷贝仅允许您个人使用或分发给其他用户,但是不能收取任何费用,后期的发布无论是印刷版或电子版,也会进行版权声明。本文档由南磊(nanlei1987@gmail.com)翻译目录第一章介绍....................................................................................................................31.1整合动机............................................................................................................31.2要求...................................................................................................................31.3感谢...................................................................................................................3第二章入门....................................................................................................................42.1安装...................................................................................................................42.2快速创建............................................................................................................4第三章SqlSessionFactoryBean...........................................................................................63.1创建...................................................................................................................63.2属性...................................................................................................................6第四章事务....................................................................................................................84.1标准配置............................................................................................................84.2容器管理事务.....................................................................................................8第五章使用SqlSession.....................................................................................................95.1SqlSessionSupport.................................................................................................95.2SqlSessionTemplate...............................................................................................9第六章MapperFactoryBean............................................................................................116.1创建.................................................................................................................116.2注入映射器.......................................................................................................116.3自动配置..........................................................................................................12第七章使用MyBatisAPI.................................................................................................13第八章示例代码...........................................................................................................14第一章介绍1.1整合动机正如第二版,Spring仅支持iBatis2。那么我们就想将MyBatis3的支持加入到Spring3.0(参考Spring的Jira的问题)中。不幸的是,Spring3.0的开发在MyBatis3.0官方发布前就结束了。因为Spring开发团队不想发布一个基于非发行版的MyBatis的整合支持,那么Spring官方的支持就不得不等到至少3.1版本了。要在Spring中支持MyBatis,MyBatis社区认为现在应该是自己团结贡献者和有兴趣的人一起来开始进行Spring和MyBatis整合的时候了。这个小类库就来创建丢失的粘贴Spring和MyBtatis这两个流行框架的胶水。减少用户不得不来配置MyBatis和Spring3.X上下文环境的样板和冗余代码。它还透明地增加了Spring对MyBatis事务的支持。1.2要求在开始阅读本手册之前,很重要的一点是你要熟悉Spring和MyBatis这两个框架还有和它们有关的术语,本手册不会提供二者的背景内容,基本安装和配置教程。和MyBatis一样,MyBatis-Spring也需要Java5或更高版本。1.3感谢非常感谢那些使得本项目成为现实的人们(按字母顺序排序)。EduardoMacarron,HunterPresnall和PutthibongBoonbong的编码工作,测试和文档修改;AndriusJuozapaitis,GiovanniCuccu,RajNagappan和TomasPinos的贡献;而SimoneTripodi发现了这些人并把他们带入项目之中。没有他们的努力,这个项目是不可能存在的。第二章入门MyBatis-Spring帮助了你的MyBatis代码和Spring进行无缝整合。使用这个类库中的类,Spring将会为你加载必要的MyBatis工厂和session类。这个小类库也会提供一个简便的方式向你的service层bean中注入MyBatis的数据映射器。最终,MyBatis-Spring将会控制事务,翻译MyBatis异常到Spring的DataAccessException异常(数据访问异常,译者注)。2.1安装要使用MyBatis-Spring模块,你只需要包含mybatis-spring-1.0.0-RC3.jar文件,并在类路径中加入依赖关系。如果你使用Maven,那么在pom.xml中加入下面的代码即可:2.2快速创建要和Spring一起使用MyBatis,你需要在Spring应用上下文中定义至少两样东西:一个SqlSessionFactory和至少一个数据映射器类。在MyBatis-Spring中,SqlSessionFactoryBean是用于创建SqlSessionFactory.的。要配置这个工厂bean,放置下面的代码在Spring的XML配置文件中:要注意SqlSessionFactory需要一个DataSource.(数据源,译者注)。这可以是任意的DataSource.,配置它就和配置其它Spring数据库连接一样。假设你有一个如下编写的数据映射器类:那么可以使用,像下面这样来把接口加入到Spring中:dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion1.0.0-RC3/version/dependencybeanid=sqlSessionFactoryclass=org.mybatis.spring.SqlSessionFactoryBeanpropertyname=dataSourceref=dataSource//beanpublicinterfaceUserMapper{@Select(SELECT*FROMuserWHEREid=#{userId})UsergetUser(@Param(userId)StringuserId);}beanid=userMapperclass=org.mybatis.spring.mapper.MapperFactoryBeanpropertyname=mapperInterfacevalue=org.mybatis.spring.sample.mapper.UserMapper/propertyname=sqlSessionFactoryref=sqlSessionFactory//bean要注意指定的映射器类必须是一个接口,而不是具体的实现类。在这个示例中,注解被用来指定SQL语句,但是MyBatis的映射器XML文件也可以用。一旦配置好,你可以以注入其它任意Spring的bean相同的方式直接注入映射器到你的business/service对象中。MapperFactoryBean控制SqlSession创建和关闭它。如果使用了Spring的事务,那么当事务完成时,session将会提交或回滚。最终,任何异常都会被翻译成Spring的DataAccessException异常。调用MyBatis数据方法现在只需一行代码:Useruser=userMapper.getUser(userId);第三章SqlSessionFactoryBean在基本的MyBatis中,session工厂可以使用Sql