Spring Boot 集成MyBatis是开发Java Web应用时常见的技术组合,使得开发者能够便捷地利用MyBatis的数据持久层框架与Spring Boot的自动化配置功能。下面我们将详细介绍两种集成MyBatis的方法,并讨论相关的配置选项。
### 方法一:使用mybatis-spring-boot-starter
mybatis-spring-boot-starter是MyBatis官方提供的Spring Boot启动器,简化了集成过程。在`pom.xml`中添加依赖:
```xml
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
```
这个依赖会自动配置MyBatis和Spring的相关组件,包括数据源、SqlSessionFactory等。在`application.yml`中,你可以指定Mapper接口和XML映射文件的位置,以及类型别名包:
```yaml
mybatis:
mapperLocations: classpath:mapper/*.xml
typeAliasesPackage: tk.mapper.model
```
此外,还可以配置其他MyBatis的属性,如配置文件路径、类型处理器包、是否检查配置文件是否存在以及执行器类型等。
### 方法二:传统mybatis-spring方式
如果你希望有更大的灵活性来定制MyBatis的配置,可以选择传统的mybatis-spring方式。这需要手动添加mybatis和mybatis-spring的依赖,并创建自定义的配置类。例如,创建一个名为`MyBatisConfig`的配置类:
```java
@Configuration
@EnableTransactionManagement
public class MyBatisConfig implements TransactionManagementConfigurer {
@Autowired
DataSource dataSource;
@Bean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
// 可以在这里添加更多自定义配置,例如配置文件、别名包等
return factoryBean.getObject();
}
}
```
在这个配置类中,你可以对SqlSessionFactory进行更细致的定制,例如设置`mybatis-config.xml`配置文件、类型处理器包等。
### 数据源配置
在集成MyBatis之前,通常需要配置数据源。这里以Druid为例,Druid是一个功能强大的数据库连接池,提供了丰富的监控和扩展功能。在`application.yml`中配置Druid数据源:
```yaml
spring:
datasource:
name: test
url: jdbc:mysql://192.168.16.137:3306/test
username: root
password:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
```
这些配置涵盖了Druid的基本参数,如最大活动连接数、初始化大小、超时时间等。
### Mapper配置
在MyBatis中,Mapper接口和对应的XML映射文件是数据操作的核心。接口定义了SQL方法,XML文件则包含了具体的SQL语句和结果映射。Mapper接口通常放在`tk.mapper.model`这样的包下,而XML文件则放在`classpath:mapper`目录下,这些路径在`application.yml`中已经配置。
### 总结
Spring Boot集成MyBatis提供了简单和灵活两种方式,可以根据项目需求选择合适的方法。无论哪种方式,都需要正确配置数据源,如Druid,以及Mapper接口和XML映射文件。通过合理的配置,我们可以充分利用Spring Boot的自动化特性,同时享受MyBatis带来的便利性。