提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
为了强强联手,将spring和mybatis联合使用。
我们知道使用mybatis首先需要根据配置文件产生sqlsession.
那么我们可以将sqlsession注入类中。前提是根据配置文件得到sqlsessionFactory.Mybatis-Spring提供了一个类来实现其功能。(SqlsessionFactoryBean)通过这个类的属性来依赖注入数据源,以及指定mybatis核心位置
一、搭建环境
引入mybatis和spring,以及mybatis-spring的jar包
二、两种开发模式
1.传统Dao方式开发整合
1.配置spring核心配置文件(配置数据源头,配置SqlSessionFactory的bean…)
<!-- 配置Mybatis工厂-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="datasource"/>
<!--指定核心配置文件的位置-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
2.配置mybatis核心配置文件以及对应接口的映射文件
3.定义接口
4.定义接口实现类继承SqlSessionDapSupport类(该类需要SqlSessionFactory或者SqlSessionTemplate对象)
5.接口实现类中调用继承得到的属性(该属性通过依赖注入得到值)
6.配置接口类的bean
2. Mapper接口方式的开发整合
MapperFactoryBean
根据Mapper接口生成Mapper对象的类,sqlsseion已经封装在内
- 优点
- 不用写实现类,(在spring,配置文件中通过MapperFactoryBean,设置绑定接口,绑定SqlSessionFactory
<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.bijian.study.dao。UsrDao" />指定接口,根据接口,创建动态代理对象
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
条件:
接口和映射文件同名,放在同一包下
接口方法和映射文件里的方法描绘一一对应,ps:返回值一样…
映射文件的命名空间要是接口的位置
步骤:
编写UserDao.xml
在mybatis配置文件中引入UserDao.xml
- com.bijian.study.dao
- UserDao
- UserDao.xml
最后获得UserDao的bean,再调用其方法即可
MapperScannerConfigurer
- 优点
- 避免spring配置文件臃肿(自动扫描指定包下的接口,对其进行映射配置)
- 不用在mybatis配置文件中映射mapper.xml。
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.bijian.study.dao" />
</bean>
配置了 MapperScannerConfigurer
如果mybatis使用注解的话也可以不用配置接口了
<mappers>
<mapper class="svtcc.Dao.UserDao"/>
</mappers>
使用Springconfig取代xml文件
最开始是这种
现在是
1导入maven依赖
2.设置jdbcconfig
3.配置mybatisconfig
3.配置springconfig
@PropertySource用于jdbcconfig@value读取properties文件内容
@上面的jdbcconfig由于没加@Configuration注解,所以这边要@import
不用@Import也可以
5.运行