1 简介
Spring整合mybatis其实就是将mybatis中的SqlSessionFactory交由Spring代为创建,并且由Spring生成mapper接口的实现类。
2 整合过程
2.1 导入相关依赖
<!--spring提供的整合mybatis的包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.3</version>
</dependency>
<!-- Mybatis核心 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.3.RELEASE</version>
</dependency>
2.2 在Spring配置文件中导入properties文件
<context:property-placeholder location="jdbc.properties" />
2.3 在Spring配置文件中配置连接池
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.Driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
2.4 在Spring配置文件中配置SqlSessionFactory
SqlSessionFactory本身是一个接口,没办法直接通过Spring创建Bean。
因此Spring为我们提供了一个SqlSessionFactory的实现类SqlSessionFactoryBean,只需配置SqlSessionFactoryBean即可。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource" ref="dataSource" ></property>
<!-- 配置mybatis核心文件 -->
<property name="typeAliases" value="spring-config.xml"></property>
</bean>
2.5 在Spring配置文件中开启mybatis的接口扫描
开启之后,Spring会自动生成接口的实现类并保存在IOC容器中,之后要使用到的话直接用@Autowired注入即可
<bean id="scannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 开启mybatis的接口扫描 -->
<property name="basePackage" value="com.ccc.ssm.mapper"></property>
</bean>
2.6 最终mybatis核心配置文件中剩余的内容
通过上面一系列的操作,mybatis核心配置文件中不再需要配置连接池和接口扫描,如果没有其他配置需求可以不需要核心配置文件,不过一般核心配置文件中还有开启别名、开启二级缓存等操作,因此还是建议保留核心配置文件