Configuring Database Connections in Spring Boot with MyBatis

Method 1: Using @Value for Property Injection

Step 1: Define a properties file (e.g., jdbc.properties)

jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou
jdbc.username=root
jdbc.password=123456

Step 2: Create a configuration class using @Value

package com.caicia.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {

    @Value("${jdbc.url}")
    private String dbUrl;
    
    @Value("${jdbc.driverClassName}")
    private String driverClass;
    
    @Value("${jdbc.username}")
    private String dbUser;
    
    @Value("${jdbc.password}")
    private String dbPass;

    @Bean
    public DataSource dataSource() {
        DruidDataSource source = new DruidDataSource();
        source.setDriverClassName(driverClass);
        source.setUrl(dbUrl);
        source.setUsername(dbUser);
        source.setPassword(dbPass);
        return source;
    }
}

Method 2: Using @ConfigurationProperties with a POJO

Step 1: Add database settings to application.properties

jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou
jdbc.username=root
jdbc.password=123456

Step 2: Define a properties holder class

package com.caicia.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Data
@ConfigurationProperties(prefix = "jdbc")
public class DatabaseProperties {
    private String url;
    private String driverClassName;
    private String username;
    private String password;
}

Step 3: Cnofigure the data source bean

package com.caicia.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
@EnableConfigurationProperties(DatabaseProperties.class)
public class JdbcConfig {

    @Bean
    public DataSource dataSource(DatabaseProperties props) {
        DruidDataSource source = new DruidDataSource();
        source.setDriverClassName(props.getDriverClassName());
        source.setUrl(props.getUrl());
        source.setUsername(props.getUsername());
        source.setPassword(props.getPassword());
        return source;
    }
}

Method 3: Direct @ConfigurationProperties on DataSource Bean

Step 1: Use application.properties as before

jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou
jdbc.username=root
jdbc.password=123456

Step 2: Simplified configuration class

package com.caicia.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
public class JdbcConfig {

    @Bean
    @ConfigurationProperties(prefix = "jdbc")
    public DataSource dataSource() {
        return new DruidDataSource();
    }
}

Tags: Spring Boot MyBatis Database Configuration druid java

Posted on Sun, 28 Jun 2026 16:57:31 +0000 by shatteredroses