SpringBoot整合MyBatis
导入依赖
首先需要在springboot中导入如下模块,其中MySql Driver和JDBC可以在创建项目的时候导入,mybatis-spring-boot-starter是后来去mvn仓库中下载的:
mapper接口以及如何动态代理
动态代理其实指的就是当我们取出IOC容器中的接口的时候,JDK会帮我们自动把此接口根据mapper.xml映射文件转化为它的实现类,具体的实现方法有两种,一种是在接口上方加@Mapper接口,那么取出IOC中的接口时,此接口会根据它所对应的mapper.xml映射文件转化为相应的实现类。第二种方式时,可以在SpringBoot的开始类上加一个@MapperScan(“mapper接口所在包的路径”),这样可以把这个包里面的所有的接口都变成相应的实现类,也就是实现了动态代理。如果没有动态代理的话,也即是不用@Mapper和@MapperScan注解的话,从IOC中取出的接口仅仅是一个接口,并不是一个实现类,不能够执行相关的sql操作。具体如下图:
mapper.xml映射文件
mapper接口
mapper接口中的传参问题
假设mapper接口中的某个方法只传递一个参数,如上面UserMapper接口中共的updateUser(User user)方法就是只传递了一个参数,这个时候我们在mapper.xml文件中写update语句的时候需要写的格式像这样:
update user set …
可以看出当我们在mapper接口中传递的只有一个参数的时候,需要在mapper.xml映射文件中写parameterType属性。
但是在很多情况下,我们在接口中需要传递多个值这个时候该怎样书写接口和mapper.xml文件中的sql语句格式呢?如下图
配置文件中融合了mybatis框架的配置文件conf.xml
通过查看MyBatisAutoConfiguration可以看出配置文件中如何配置mybatis框架配置文件conf.xml中的相关信息,如下图
点击MybatisProperties.class查看源码
通过上面的源码可以知道在springboot的配置文件中配置mybatis的相关信息是通过mybatis开头。