springboot+mybatis+druid数据库连接池

一天到晚想名字      2022-05-03     267

关键词:

参考博客https://blog.csdn.net/liuxiao723846/article/details/80456025

1、先在pom.xml中引入druid依赖包

技术图片
<!-- 连接池 -->
<!-- Druid 数据连接池依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.13</version>
</dependency>
View Code

2、配置propertie文件

技术图片
#mybatis.type-aliases-package=com.example.demo.model
#mybatis.mapper-locations=classpath*:com/example/demo/mapper/*.xml
#spring.datasource.url=jdbc:mysql://localhost:3306/day13?useUnicode=true&characterEncoding=utf-8
#spring.datasource.username=root
#spring.datasource.password=
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver

ds1.datasource.url=jdbc:mysql://localhost:3306/day13?useUnicode=true&characterEncoding=utf-8
ds1.datasource.username=root
ds1.datasource.password=
ds1.datasource.driverClassName=com.mysql.jdbc.Driver

ds1.datasource.initialSize=20
ds1.datasource.minIdle=20
ds1.datasource.maxActive=200
ds1.datasource.maxWait=60000
ds1.datasource.timeBetweenEvictionRunsMillis=60000
ds1.datasource.minEvictableIdleTimeMillis=300000
ds1.datasource.testWhileIdle=true
ds1.datasource.testOnBorrow=false
ds1.datasource.testOnReturn=false
ds1.datasource.poolPreparedStatements=true
ds1.datasource.maxPoolPreparedStatementPerConnectionSize=20
View Code

3、spring-boot不支持自动配druid连接池,通过定制化DataSource来实现

技术图片
package com.example.demo.bean;

import com.alibaba.druid.pool.DruidDataSource;
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.beans.factory.annotation.Value;
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 org.springframework.jdbc.datasource.DataSourceTransactionManager;

import javax.sql.DataSource;
import java.sql.SQLException;

@Configuration
@MapperScan(basePackages = DataSourceConfig.PACKAGE,sqlSessionFactoryRef = "sqlSessionFactory")
public class DataSourceConfig {
    static final String PACKAGE = "com.example.demo.model";
    static final String MAPPER_LOCATION = "classpath*:com/example/demo/mapper/*.xml";

    @Value("${ds1.datasource.url}")
    private String url;
    @Value("${ds1.datasource.username}")
    private String username;
    @Value("${ds1.datasource.password}")
    private String password;
    @Value("${ds1.datasource.driverClassName}")
    private String driverClassName;

    @Value("${ds1.datasource.maxActive}")
    private Integer maxActive;
    @Value("${ds1.datasource.minIdle}")
    private Integer minIdle;
    @Value("${ds1.datasource.initialSize}")
    private Integer initialSize;
    @Value("${ds1.datasource.maxWait}")
    private Long maxWait;
    @Value("${ds1.datasource.timeBetweenEvictionRunsMillis}")
    private Long timeBetweenEvictionRunsMillis;
    @Value("${ds1.datasource.minEvictableIdleTimeMillis}")
    private Long minEvictableIdleTimeMillis;
    @Value("${ds1.datasource.testWhileIdle}")
    private Boolean testWhileIdle;
    @Value("${ds1.datasource.testWhileIdle}")
    private Boolean testOnBorrow;
    @Value("${ds1.datasource.testOnBorrow}")
    private Boolean testOnReturn;


    @Bean(name = "dataSource")
    @Primary
    public DataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);

        //连接池配置
        dataSource.setMaxActive(maxActive);
        dataSource.setMinIdle(minIdle);
        dataSource.setInitialSize(initialSize);
        dataSource.setMaxWait(maxWait);
        dataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
        dataSource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
        dataSource.setTestWhileIdle(testWhileIdle);
        dataSource.setTestOnBorrow(testOnBorrow);
        dataSource.setTestOnReturn(testOnReturn);

        dataSource.setValidationQuery("SELECT ‘x‘");
        dataSource.setPoolPreparedStatements(true);
        dataSource.setMaxPoolPreparedStatementPerConnectionSize(20);
        try {
            dataSource.setFilters("stat");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return dataSource;
    }

    @Bean(name = "transactionManager")
    @Primary
    public DataSourceTransactionManager transactionManager(){
        return new DataSourceTransactionManager(dataSource());
    }

    @Bean(name = "sqlSessionFactory")
    @Primary
    public SqlSessionFactory ds1SqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
        final SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        sessionFactoryBean.setTypeAliasesPackage("com.example.demo.model");
        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(DataSourceConfig.MAPPER_LOCATION));
        return sessionFactoryBean.getObject();
    }
}
View Code

DruidDBConfig类被@Configuration标注,用作配置信息; DataSource对象被@Bean声明,为Spring容器所管理, @Primary表示这里定义的DataSource将覆盖其他来源的DataSource

4、直接使用

springboot+mybatis+druid+pagehelper实现多数据源并分页

前言本篇文章主要讲述的是SpringBoot整合Mybatis、Druid和PageHelper并实现多数据源和分页。其中SpringBoot整合Mybatis这块,在之前的的一篇文章中已经讲述了,这里就不过多说明了。重点是讲述在多数据源下的如何配置使用Druid和PageHelpe... 查看详情

springboot--整合mybatis+druid(代码片段)

...,首先替换默认数据源为阿里德鲁伊并添加监控,其次是SpringBoot下使用Mybatis替换数据源为德鲁伊  首先在配置文件里配置好数据库连接的基本信息,如usernamepasswordurl等,重要的是把默认的type换成Druid。这样做数据源已经换成... 查看详情

springboot+mybatis+druid配置多数据源(mysql+postgre)

springboot+mybatis+Druid配置多数据源(mysql+postgre)引入pom依赖设置application多数据源config配置db1config配置(主数据库配置)db2config配置(其他数据库)事务处理mapper层springboot+mybatis+Druid配置多数据源(mysql+postgre)参考资料:第八章springboot+mybatis+... 查看详情

springboot整合mybatis

1、springboot配置数据库连接池druid2、springboot整合mybatis3、springboot整合pagehelper  springboot配置数据库连接池druid 新建springboot项目   相关pom依赖druid所需pom依赖 <dependency><groupId> 查看详情

springboot配置mysql,mybatis,druid

配置DRUID连接池MYSQL数据库MYBATIS持久层框架添加依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version></dependency> 查看详情

springboot入门之基于druid配置mybatis多数据源

...处理,这篇了解下使用基于基于Druid配置Mybatis多数据源。SpringBoot默认配置数据库连接信息时只需设置url等属性信息就可以了,SpringBoot就会基于约定根据配置信息实例化对象,但是一般大型的项目都是有多个子系统或者多个数据... 查看详情

springboot+mybatis+druid数据库连接池

参考博客https://blog.csdn.net/liuxiao723846/article/details/804560251、先在pom.xml中引入druid依赖包<!--连接池--><!--Druid数据连接池依赖--><dependency><groupId>com.alibaba</groupId><artifactI 查看详情

idea搭建springboot项目:springboot+mybatis+druid+mybatis-generator(代码片段)

今天第一次使用IDEA开发工具,搭建SpringBoot项目,记录下重点步骤。1、IDEA创建基于Maven管理的Java项目。2、pom.xml文件添加jar包依赖:SpringBoot版本、MyBatis、MySQL8驱动和AlibabaDruid数据库连接池。插件依赖:添加maven插... 查看详情

springboot+druid+mybatis-plus配置详解(代码片段)

网上找了很多关于springboot+druid+mybatis-Plus的配置,遇见的很多问题也没找到好的解决方案。折腾了好几天终于自己配置通过了。 springboot的pom文件1<parent>2<groupId>org.springframework.boot</groupId>3<artifactId>spring-boot-s 查看详情

shardingsphere多数据源(springboot+mybatis+shardingsphere+druid)

org.springframeword.boot:spring-boot-starer-web:2.0.4releaseio.shardingsphere:sharding-jdbc-spring-boot-starter:3.0.0M3org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.1com.alibaba:druid-spring 查看详情

springboot2.0引入mybatis-plus-druid

pom 数据源配置 MybatisPlus配置  实体类 参考项目  查看详情

springboot---整合druid连接池---连接oracle数据库---整合mybatis---整合thymeleaf---日志配置

目录在新建的springboot项目pom文件中新添druid连接池的依赖在application.properties配置文件中添加配置配置静态文件目录和模板文件目录@(springboot---整合druid连接池---连接oracle数据库---整合mybatis---整合thymeleaf---日志配置)在新建的springb... 查看详情

springboot使用druid与mybatis-plus整合(代码片段)

SpringBoot使用Druid与Mybatis-plus整合需要导入的依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependenc 查看详情

springboot2+druid+mybatis多数据源配置(代码片段)

...案。读写分离会使用多数据源的使用。下面记录如何搭建SpringBoot2+Druid+Mybatis 多数据源配置以及在使用过程遇到的问题。一、先从pom.xml入手(使用springboot2的版本)<parent><groupId>org.springframework.boot&l 查看详情

springboot(12):集成druid

一、添加依赖<!--mybatis-开始--><dependency>   <groupId>org.mybatis.spring.boot</groupId>   <artifactId>mybatis-spring-boot-starter</artifactId> 查看详情

shirodemo:springboot+shiro+druid+mybatis(代码片段)

访问start.spring.io生成项目: 然后选择依赖: pom.xml:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi: 查看详情

springboot实战之mybatis、druid

...Mapper,为了后续单元测试验证,实现插入和查询操作创建SpringBoot主类创建单元测试测试逻辑:插入一条name=AAA,age=20的记录,然后根据name=AAA查询,并判断age是否为20测试结束回滚数据,保证测试单元每次运行的数据环境独立【... 查看详情

springboot1.5.4整合druid(十三)

上一篇:springboot1.5.4整合mybatis(十二) 1      集成druid连接池springboot集成druid项目mybatis-spring-boot源码地址:https://git.oschina.net/wyait/springboot1.5.4.git 1.1 druid简介D 查看详情