pom文件配置:增加mybatis的启动器依赖和驱动依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
启动器的作用:
Mybatis配置项:
属性 | 作用 |
---|---|
config-location | Mybatis的xml配置文件的位置 |
check-config-location | MyBatis的xml配置文件执行状态检查 |
mapper-locations | 映射器xml配置文件的位置 |
type-aliases-package | 需要其别名的包,如果多个,可以通过 , 或者 ; 相隔 |
type-aliases-super-type | 指定需要映射别名类的父类,算是和type-aliases-package的合成一个并集吧。如果不指定,那么他就会扫描type-aliases-package下面所以的类 |
type-handlers-package | 类型转换处理器的包名 |
executor-type | 执行器的类型:SIMPLE, REUSE, BATCH |
default-scripting-language-driver | 动态sql的脚本语言(默认脚本语言驱动程序) |
lazy-initialization | 是否启用映射程序bean的延迟初始化 |
后面详细说明mybatis这方面的配置。
这些配置可以写在properties文件或者yml文件中
当然,也可以通过java配置。
@Configuration
public class MyBatisConfig {
@Bean
ConfigurationCustomizer mybatisConfigurationCustomizer() {
return new ConfigurationCustomizer() {
@Override
public void customize(Configuration configuration) {
// customize ...
}
};
}
}
MyBatis Spring Boot Starter将检测实现MyBatis提供的以下接口的bean。
@Configuration
public class MyBatisConfig {
@Bean
MyInterceptor myInterceptor() {
return MyInterceptor();
}
@Bean
MyTypeHandler myTypeHandler() {
return MyTypeHandler();
}
@Bean
MyLanguageDriver myLanguageDriver() {
return MyLanguageDriver();
}
@Bean
VendorDatabaseIdProvider databaseIdProvider() {
VendorDatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
Properties properties = new Properties();
properties.put("SQL Server", "sqlserver");
properties.put("DB2", "db2");
properties.put("H2", "h2");
databaseIdProvider.setProperties(properties);
return databaseIdProvider;
}
}
Customization for LanguageDriver(自定义语言驱动):
ThymeleafLanguageDriver:
@Configuration
public class MyBatisConfig {
@Bean
ThymeleafLanguageDriverConfig thymeleafLanguageDriverConfig() {
return ThymeleafLanguageDriverConfig.newInstance(c -> {
// ... customization code
});
}
}
FreeMarkerLanguageDriverConfig
@Configuration
public class MyBatisConfig {
@Bean
FreeMarkerLanguageDriverConfig freeMarkerLanguageDriverConfig() {
return FreeMarkerLanguageDriverConfig.newInstance(c -> {
// ... customization code
});
}
}