Spring学习笔记(五)-整合Mybatis
Spring整合Mybatis
集成思路
- Spring有非常好的兼容性,能集成其他优秀的框架,在集成中使用的是Spring的IOC技术
- 使用Mybatis则需要创建Mybatis中的某些对象:
- dao接口的代理对象、SqlSession、SqlSessionFactory、DataSource
- Mybatis自带有一个DataSource对象,亦可整合其他连接池对象替代之
- 从Spring容器中获取对象
整合方式
-
Spring配置文件的设置:
- 声明数据源DataSource
- 声明SqlSessionFactoryBean,由Mybatis提供,用于创建SqlSessionFactory
- 声明MapperScannerConfiguration,在内部创建dao代理对象,创建的dao代理对象都存放于Spring容器中
-
Maven配置:Mybatis和Spring的集成
-
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.5</version> </dependency>
-
Spring配置文件设置
-
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="url" value="${jdbc.url}"/> <property name="initialSize" value="${jdbc.initialSize}"/> <property name="maxActive" value="${jdbc.maxActive}"/> <property name="maxWait" value="${jdbc.maxWait}"/> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:MybatisSpringConfig.xml"/> </bean> <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!--指定基本包,dao接口所在的包名--> <!--将会调用getMapper()方法创建所有dao代理对象--> <property name="basePackage" value="com.km.dao"/> </bean>
-
在Mybatis中不再需要配置dataSource
-
当在一个文件中引用另外一个文件时,需要配置classpath告知引用文件的位置