使用MyBatis-Spring类库进行mybatis与spring整合
来源:互联网 发布:数据营销策略 编辑:程序博客网 时间:2024/05/21 20:25
mybatis与spring框架的整合网上有很多中方法,整合的过程中有些细节对于新手来说也是很麻烦的,俗话说
聪明的人就是帮懒惰的人更加懒
所以就有了mybatis-spring这个类库来帮助我们整合,实现mybatis代码无缝地整合到sprig中。首先要明白整合的具体思路:
- 让spring管理mybatis中的SqlSessionFactory
- 让spring管理mapper对象和dao
- 让spring管理数据库连接池
其实整合的过程主要是对文件结构以及spring的配置文件applicationContext.xml的配置。
其中配置文件重要包含的就是数据源、SqlSessionFactory、mapper和dao
数据源就不用多说了,这里主要的就是介绍下mybatis-spring中的SqlSessionFactoryBean和MapperFactoryBean
SqlSessionFactoryBean:
首先配置数据源使用spring-mybatis中的SqlSessionFactory来代替以前mybatis中的SqlSessionFactory,而且该bean实现了Spring中的FactoryBean接口。
在mybatis-spring中就不需要直接的去使用SqlSessionFactoryBean或者是对应的SqlSessionFactory
看下实例代码:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:mybatis.xml"></property> <property name="dataSource" ref="dataSource"></property> </bean>
它有两个配置属性:
1、DataSource:是spring数据库连接的一样的
2、configLocation:是用来指定mybatis的xml配置文件的路径,其中mybatis配置文件中的环境、数据源、和事务管理器都会被忽略,SqlSessionFactoryBean会创建它自己的,所以主要是用来包含其中的<settings>
或者是<typeAliases>
部分
在指定mybatis的mapper对象时候,使用这个配置有两种选择:
使用configLocation属性手动的在Mybatis的xml配置文件中使用
<mappers>
部分来指定类路径,如上面的代码所示使用bean的mapperLocations属性来加载一个目录中所有的mapper对象
比如:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="mapperLocations" value="classpath*:sample/config/mappers/**/*.xml" /> <property name="dataSource" ref="dataSource"></property> </bean>
它会加载在 sample.config.mappers 包和它的子包中所有的 MyBatis 映射器 XML 文件。
MapperFactoryBean:
注入映射器,mybatis-spring也可以手工使用SqlSessionDaoSupport和SqlSessionTemplate来时数据访问对象(DAO),但是这里推荐使用MapperFactoryBean来动态的实现MapperFactoryBean,这样你使用映射器的时,直接像调用DAO一样就行了。
<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="org.com.will.dao.UserDao"></property> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean>
其中的属性主要是mapperInterface,去指定映射器,也就是dao接口。
属性sqlSessionFactory 用ref调用上面的SqlSessionFactoryBean,对dao和xml映射文件进行解析。
这里注意sqlSessionFactory属性的ref要与上面SqlSessionFactoryBean的id保持一致
如果要去注册多个映射器,一个个写出来太麻烦了,可以直接使用MapperScannerCongurer进行批量的的注册,它会自动的查找类路径下所有映射器并为它们创建MapperFactoryBean
MapperScannerConfigurer:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="org.mybatis.spring.sample.mapper" /> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property></bean>
其中basePackage属性值可以使用分号或者是逗号作为分隔符来设置多个包路径
还有别忘记在applicationContext.xml文件中配置dao:
<bean id="userService" class="org.com.will.service.impl.UserServiceImpl"><property name="userDao" ref="userDao"></property></bean>
这就是mybatis与spring整合的一些基本的内容。有些细节的东西可能没有说到。
具体可以到官方网站去看:http://www.mybatis.org/spring/zh/index.html
这里附上一个自己写的一个整合的简单例子源代码,可以参考下:http://download.csdn.net/detail/leoe_/9836717
- 使用MyBatis-Spring类库进行mybatis与spring整合
- spring与mybatis整合
- 整合spring与myBatis
- mybatis 与 spring 整合
- mybatis与spring整合
- mybatis与spring整合
- mybatis与spring整合
- spring与mybatis整合
- spring与mybatis整合
- Spring与Mybatis整合
- Mybatis与Spring整合
- spring与mybatis整合
- mybatis与spring整合
- spring与mybatis整合
- Mybatis与Spring整合
- MyBatis与Spring整合
- Spring与MyBatis整合
- Spring与MyBatis整合
- CTSC2017游记
- div+css 第一天
- kafka消息队列运维工具和相关安装目录文件总结
- PPAPI插件开发指南
- 爬虫基础高级篇
- 使用MyBatis-Spring类库进行mybatis与spring整合
- 贫民窟的hadoop日志---hadoop基本搭建
- UVA,10765 Doves and bombs
- 用一个例子解释什么是回调函数
- POJ4002Alice's mooncake shop
- Mysql数据库索引
- SpringMVC处理模型数据(2)
- 二分贪心总结
- Cookie使用