20220620MybatisPlus配置更新+C3P0数据源在SpringBoot中的设置

Background

There are some problems with the project that, MapUnderscoreToCamelCase doesn’t work, so I had to rebuild the connection of datasource and set the configuration at the same time~

Configuration of YML

Mybatis-Plus
mybatis-plus:
  global-config:
    db-config:
      id-type: auto
      logic-delete-field: isDeleted   #逻辑删除字段
      logic-delete-value: Y    #逻辑已删除值
      logic-not-delete-value: N   #逻辑未删除值
    #      table-prefix: tb_    #前缀
    banner: false
  configuration:
    map-underscore-to-camel-case: true  #开启驼峰
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印搜索日志
  type-aliases-package: com.kiseki.model.entities    #就是resulttype好写了,还不要区分大小写
  mapper-locations: classpath:/mapper/**/*.xml   #mapper.xml映射路径
C3P0
spring:
  datasource:
    type: com.mchange.v2.c3p0.ComboPooledDataSource
    acquireIncrement: 2
    autoCommitOnClose: true
    checkoutTimeout: 5000
    driverClass: com.mysql.cj.jdbc.Driver
    initialPoolSize: 10
    maxIdleTime: 1200
    maxPoolSize: 50
    minPoolSize: 10
    password: 12345678
    jdbcUrl: jdbc:mysql://localhost:3306/project?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
    user: root

See below class to match the name as C3P0 seems to have different naming manner.

package com.mchange.v2.c3p0.jboss;
interface C3P0PooledDataSourceMBean

Configuration of Class

DataSourceConfig.Class
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.*;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.TransactionManagementConfigurer;

import javax.sql.DataSource;
import java.beans.PropertyVetoException;

@Configuration
@ComponentScan
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@EnableTransactionManagement
//@MapperScan(basePackages = "com.kiseki.model.persistence", sqlSessionFactoryRef = "db1sqlSessionFactory")
@MapperScan(basePackages = "com.kiseki.model.persistence")
public class DataSourceConfig implements TransactionManagementConfigurer {
    @Bean(name = "dataSource")
    @Qualifier(value = "dataSource")
    @Primary
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        DataSource dataSource = DataSourceBuilder.create().type(com.mchange.v2.c3p0.ComboPooledDataSource.class).build();
        return dataSource;
    }

    @Override
    public PlatformTransactionManager annotationDrivenTransactionManager() {
        return new DataSourceTransactionManager(dataSource());
    }
}
Mybatis-plus.Class
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Role;


/**
 * @Description: Mybatis-plus 拦截器
 * @Author: Spike Wong
 * @Date: 2022/6/5
 */
@Configuration
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
public class MpConfig {
    @Bean
    @Role(BeanDefinition.ROLE_INFRASTRUCTURE)
    public MybatisPlusInterceptor mpInterceptor() {
        //1.定义Mp拦截器
        MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();
        //2.添加具体的拦截器
        mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        //3.添加乐观所拦截器
        mpInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return mpInterceptor;
    }
    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return new ConfigurationCustomizer() {
            @Override
            public void customize(MybatisConfiguration configuration) {
                configuration.setMapUnderscoreToCamelCase(true);
            }
        };
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值