日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

SpringBoot + Mybatis 多數(shù)據(jù)源配置打印SQL失效問題(mybatis.configuration.log-impl)

作者:WD技術(shù) 更新時(shí)間: 2024-03-18 編程語言

一、單數(shù)據(jù)源
一個(gè)數(shù)據(jù)源時(shí)直接在 application.yaml 文件中增加如下配置即可實(shí)現(xiàn)sql日志的打印

mybatis:
    configuration:
        map-underscore-to-camel-case: true
        log-impl: com.ylx.apis_plugin_supervise.config.mybatis.log.MybatisLogCustom

MybatisLogCustom 類為自定義的SQL打印配置類

import org.apache.ibatis.logging.Log;

public class MybatisLogCustom implements Log {

    public MybatisLogCustom(String clazz) {
    }

    @Override
    public boolean isDebugEnabled() {
        return true;
    }
    @Override
    public boolean isTraceEnabled() {
        return true;
    }
    @Override
    public void error(String s, Throwable e) {
        System.err.println(s);
        e.printStackTrace(System.err);
    }
    @Override
    public void error(String s) {
        System.out.println("mybatis error");
        System.err.println(s);
    }
    @Override
    public void debug(String s) {
        // System.out.println("mybatis debug");

        // 放開注釋,打印 mybatis執(zhí)行sql
        System.out.println(s);
    }
    @Override
    public void trace(String s) {
        // System.out.println("mybatis trace");

        // 放開注釋,打印 mybatis執(zhí)行sql的返回結(jié)果
        // System.out.println(s);
    }
    @Override
    public void warn(String s) {
        System.out.println("mybatis warn");
        System.out.println(s);
    }
}

二、mybatis配置多個(gè)數(shù)據(jù)源
只需要在多數(shù)據(jù)源中的一個(gè)配置類中增加如下配置即可

// 多數(shù)據(jù)源配置類中增加 Configuration
@Bean
@ConfigurationProperties(prefix = "mybatis.configuration")
public org.apache.ibatis.session.Configuration globalConfiguration() {
    return new org.apache.ibatis.session.Configuration();
}

// 在其中一個(gè)數(shù)據(jù)源中增加如下代碼即可,不需要在所有數(shù)據(jù)源配置中都增加
sessionFactoryBean.setConfiguration(configuration);

具體參考:

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;

@Configuration
@MapperScan(basePackages = "com.ylx.apis_plugin_supervise.mybatis.ubkplugin.dao",sqlSessionFactoryRef = "ubkpluginSqlSessionFactory")
public class UbkPluginDataSourceConfig {
    @Bean
    @ConfigurationProperties(prefix = "mybatis.configuration")
    public org.apache.ibatis.session.Configuration globalConfiguration() {
        return new org.apache.ibatis.session.Configuration();
    }

    @Primary
    @Bean(name = "ubkpluginDataSource")
    @ConfigurationProperties("spring.datasource.ubkplugin")
    public DataSource masterDataSource(){
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "ubkpluginSqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("ubkpluginDataSource") DataSource dataSource,
                                               org.apache.ibatis.session.Configuration configuration) throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);

        sessionFactoryBean.setConfiguration(configuration);

        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:mapper/ubkplugin/*.xml"));
        return sessionFactoryBean.getObject();
    }
}

原文鏈接:https://blog.csdn.net/qq_44761854/article/details/136676691

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新