SpringBoot之集成Druid数据库连接池

SpringBoot之集成Druid

导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.9</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

配置Druid

首先创建/resources/application.yaml:

spring:
  datasource:
    name: xxx
    password: xxx
    url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/demo?&useUnicode=True&characterEncoding=UTF-8
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    # ---druid
    initialSize: 5 # 初始化数量
    maxActive: 20 # 最大活动连接数
    minIdle: 1 # 最小空闲数量
    maxWait: 6000 # 最大等待时间

然后写一个自定义的Configure类,用来创建我们的数据源:

package com.baiyang.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 Configure {

    @Bean
	//指定从配置中加载"spring.datasource"开头的配置,因为我们的Druid的配置是写在这个前缀下面的。
    @ConfigurationProperties(prefix = "spring.datasource")
	//指定条件:必须配置了spring.datasource.type属性,并且属性的值必须是"com.alibaba.druid.pool.DruidDataSource"才加载DruidDataSource。
	@ConditionalOnProperty(prefix = "spring.datasource", name = "type", havingValue = "com.alibaba.druid.pool.DruidDataSource")
    public DataSource getDataSource() {
        return new DruidDataSource();
    }
}

测试

package com.baiyang.springboot;

import com.alibaba.druid.pool.DruidDataSource;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.sql.DataSource;

@SpringBootTest
class SpringbootTestApplicationTests {
    @Autowired
    private DataSource dataSource;

	/**
     * 打印数据源信息
     */
    @Test
    public void printDataSource() {
        String str = String.format("\033[1;33mDataSource info: type=%s", dataSource.getClass().getSimpleName());
        if (dataSource instanceof DruidDataSource) {
            DruidDataSource druidDataSource = (DruidDataSource) dataSource;
            str = String.format("%s,initialSize=%s,maxActive=%s,maxIdle=%s", str, druidDataSource.getInitialSize(), druidDataSource.getMaxActive(), druidDataSource.getMaxIdle());
        }
        System.out.printf("%s\033[0m\n", str);
    }
}

最后

Druid github wiki主页
Druid github 常见问题
Druid github 参考配置

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个基于Java的开源框架,简化了使用Java编写企业级应用程序所需的配置和部署过程。它提供了一个简单且功能强大的方式来连接MySQL数据库,并使用Druid作为连接池管理工具,以提高数据库连接的性能和稳定性。同时,Spring Boot也提供了集成MyBatis的支持,以便于数据库访问和操作。 对于连接MySQL数据库,首先需要在项目的配置文件中配置MySQL数据库的连接信息,包括数据库的URL、用户名和密码等。然后,在Spring Boot的启动类中使用相应的注解,例如@EnableAutoConfiguration和@SpringBootApplication,来启用Spring Boot的自动配置和扫描功能。 接下来,可以通过在pom.xml文件中添加相应的依赖来引入Druid和MyBatis等库。Druid作为连接池管理工具,可以在配置文件中配置最大连接数、最小连接数等参数,以及其他高级功能如连接池监控等。MyBatis是一个优秀的ORM框架,可以通过编写XML文件或注解的方式来定义和执行数据库操作。 在编写代码时,可以使用Spring Boot提供的注解,如@Repository、@Service和@Controller等,来标记数据访问层、业务逻辑层和控制层的实现类。同时,可以使用@Mapper注解来标记MyBatis的Mapper接口,以便让Spring Boot自动创建对应的实现类,并与数据库进行交互。 总结来说,Spring Boot结合MySQL、Druid和MyBatis提供了一种简单而强大的方式来连接和操作数据库。通过配置文件和注解,可以快速搭建和部署应用程序,并实现高性能的数据库访问和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值