在Java项目中,使用MyBatis-Plus结合Druid数据源是一种高效且安全的数据访问策略。MyBatis-Plus是MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控等功能。
以下是一个基本的整合MyBatis-Plus和Druid数据源的配置示例,包括Spring Boot项目的application.yml(或application.properties)配置和必要的Java配置类(如果Spring Boot的自动配置不满足需求时)。
application.yml配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/yourdatabase?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: yourpassword
# Druid特有配置
druid:
initial-size: 5
min-idle: 5
max-active: 10
max-wait: 10000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filter:
stat:
merge-sql: true
slow-sql-millis: 5000
wall:
config:
multi-statement-allow: true
Java配置类(可选)
如果Spring Boot的自动配置已经满足你的需求,你可能不需要额外的Java配置类。但如果你需要更复杂的配置,比如动态地改变数据源,你可以通过Java配置类来实现。
以下是一个简单的Java配置类示例,实际上在大多数情况下,上面的application.yml
配置已经足够,这里只是提供一个概念:
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import javax.sql.DataSource;
@Configuration
public class DruidConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource.druid")
public DataSource druidDataSource() {
return new DruidDataSource();
}
// 如果需要更复杂的配置,可以在这里添加
}
注意:在Spring Boot 2.x中,如果你已经通过application.yml
(或application.properties
)配置了数据源,那么Spring Boot的自动配置会自动加载这些配置,并创建相应的DataSource
Bean。因此,通常不需要再手动创建一个Java配置类来配置数据源,除非你需要进行一些更复杂的操作或定制。