SpringBoot - 整合 mybatis
导入pom依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
依赖图
dao接口 加上@Mapper
或者在主启动类上 加@MapperScan(value = "com.fyj.spring.jdbc.dao")
(二选一)
注解版
@Mapper
public interface PaymentDao
{
@Select("select * from payment where id=#{id}")
public Payment getPaymentById(@Param("id") Long id);
}
如果需要自定义MyBatis的配置规则;
可以给容器中添加一个ConfigurationCustomizer;
@org.springframework.context.annotation.Configuration
public class MyBatisConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer(){
return new ConfigurationCustomizer(){
@Override
public void customize(Configuration configuration) {
configuration.setMapUnderscoreToCamelCase(true);
}
};
}
}
经过以上配置,就可以使用 是使用dao操作数据库
配置文件版
主要在 yml 配置文件中 配置
然后在对于的位置 加上 全局配置文件 或 sql映射的.xml 文件
springboot 整合 mybatis配置原理
-
主要还是从 依赖
mybatis-spring-boot-starter
说起
该依赖是mybatis 官方提供的 -
该依赖导入了
mybatis-spring-boot-autoconfigure
可以查看上面的依赖图<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-autoconfigure</artifactId> </dependency>
-
而在 该包的 mybatis-spring-boot-autoconfigure 类路径下 有
META-INF/spring.factories
-
springboot 在启动的时候,会自动加载 EnableAutoConfiguration 下面的所有配置的类,
-
而 MybatisAutoConfiguration 这个配置类 会往容器自动注入 Mybatis 所需要的组件
比如SqlSessionFactory
,看如下源码截图: