Mybatis Configuration

该文章展示了如何在SpringBoot应用中配置MyBatis,使用HikariCP作为数据源,并设置了相关的数据库连接参数。同时,文章还包含了自定义的SqlSessionFactoryBean和DataSourceTransactionManager的配置,以实现数据库事务管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot配置mybatis

package com.demo.configuration;



import com.ddd.demo.configuration.mysql.DemoSqlSessionFactoryBean;

import com.zaxxer.hikari.HikariConfig;

import com.zaxxer.hikari.HikariDataSource;

import org.mybatis.spring.annotation.MapperScan;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.jdbc.datasource.DataSourceTransactionManager;



/**

 * 数据库层配置类

 *

 */

@Configuration

@MapperScan(basePackages = {"com.trace.base.tool.mapper.**"}, sqlSessionFactoryRef = "sqlSessionFactory")

public class DataBaseConfiguration {

    @Value("${hikaricp.dataSource.jdbc.driverClassName}")

    private String driverClassName;

    @Value("${hikaricp.dataSource.url}")

    private String jdbcUrl;

    @Value("${hikaricp.dataSource.username}")

    private String username;

    @Value("${hikaricp.dataSource.password}")

    private String password;

    @Value("${hikaricp.dataSource.connectionTestQuery}")

    private String connectionTestQuery;

    @Value("${hikaricp.dataSource.connectionTimeout}")

    private long connectionTimeout;

    @Value("${hikaricp.dataSource.idleTimeout}")

    private long idleTimeout;

    @Value("${hikaricp.dataSource.maxLifetime}")

    private long maxLifetime;

    @Value("${hikaricp.dataSource.maximumPoolSize}")

    private int maximumPoolSize;

    @Value("${hikaricp.dataSource.minimumIdle}")

    private int minimumIdle;



    /**

     * 注入一个hikaricp dataSource

     */

    @Bean(value = "dataSource", destroyMethod = "close")

    public HikariDataSource hikariDataSource() {

        HikariConfig hikariConfig = new HikariConfig();

        hikariConfig.setDriverClassName(driverClassName);

        hikariConfig.setJdbcUrl(jdbcUrl);

        hikariConfig.setUsername(username);

        hikariConfig.setPassword(password);

        hikariConfig.setConnectionTestQuery(connectionTestQuery);

        hikariConfig.setConnectionTimeout(connectionTimeout);

        hikariConfig.setIdleTimeout(idleTimeout);

        hikariConfig.setMaxLifetime(maxLifetime);

        hikariConfig.setMaximumPoolSize(maximumPoolSize);

        hikariConfig.setMinimumIdle(minimumIdle);

        return new HikariDataSource(hikariConfig);

    }



    /**

     * 注入一个sqlSessionFactory

     */

    @Bean(value = "sqlSessionFactory")

    public DemoSqlSessionFactoryBean sqlSessionFactory(HikariDataSource dataSource) {

        DemoSqlSessionFactoryBean sessionFactoryBean = new DemoSqlSessionFactoryBean();

        sessionFactoryBean.setDataSource(dataSource);

        return sessionFactoryBean;

    }



    /**

     * 主动注入一个transactionManger,适用多数据库事务管理器环境

     */

    @Bean(value = "transactionManager")

    public DataSourceTransactionManager dataSourceTransactionManager(HikariDataSource dataSource) {

        return new DataSourceTransactionManager(dataSource);

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值