SpringBoot快速配置数据源的方法

SpringBoot如何快速配置数据源;有如下两种方式:

  1. 通过spring-boot-starter-jdbc快速配置数据源
  2. 自定义数据源DataSource

首先我们需要明确数据源DataSource有什么作用:

  1. 通过DataSource可以获取数据库连接Connection
  2. 通过DataSource创建JdbcTemplate操作数据库

实际项目中,我们在配置数据源的时候会指定数据库连接池,比如流行的Hikari(spring默认的数据库连接池)、C3p0、Dbcp2以及阿里巴巴的Druid。

一、使用数据库连接池

应用在操作数据库的时候,直接从数据库连接池获取连接,而不需要每次创建新的连接。

至于数据库连接池的好处,总结就是: 应用创建和销毁连接的代价是很大的,使用数据库连接池可以很好的复用连接,节省开销,方便管理,简化开发。

可能有些场景我们不想使用SpringBoot JDBC默认的数据源,我需要引入数据库连接池,然后自定义数据源,指定数据源类型。

下面以Dbcp2数据库连接池配置数据源为例。

二、配置依赖

引入dbcp2的数据库连接池已经相关依赖。

<!-- dbcp2数据库连接池 -->
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-dbcp2</artifactId>
  <version>2.7.0</version>
</dependency>
<!--数据库驱动-->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.18</version>
</dependency>
<!-- 提供操作数据库的标准口径 -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>5.2.2.RELEASE</version>
  <scope>compile</scope>
</dependency>

三、编写配置项

在application.properties文件中配置数据库连接属性。

customize.datasource.url=jdbc:mysql://localhost:3306/blue?serverTimezone=UTC
customize.datasource.username=root
customize.datasource.password=wan4380797
customize.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

四、自定义DataSource

import org.apache.commons.dbcp2.BasicDataSource;
@Configuration
public class Dbcp2DataSource {
  @Bean("myDbcp2DataSource")
  @ConfigurationProperties(prefix = "customize.datasource")
  public DataSource getDataSource(){
    return DataSourceBuilder.create().type(BasicDataSource.class).build();
  }
}

这边我们可以看到我们创建的DataSource类型为BasicDataSource类型的。并且BasicDataSource来源于之前配置的dbcp2依赖的jar包中。

五、调用验证

下面我们使用junit来验证以下数据源配置的正确与否:

@SpringBootTest
@RunWith(SpringRunner.class)
public class JdbcCustomizeDatasourceApplicationTests {

  @Autowired
  @Qualifier("myDbcp2DataSource")
  private DataSource dataSource;

  @Test
  public void springJdbcTemplateTest(){
    try{
      JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
      String queryStr = "select * from student";
      List<Student> resultList = new ArrayList<>();
      jdbcTemplate.query(queryStr, (ResultSet resultSet)->{
        Student student = new Student();
        student.setId(resultSet.getString("id"));
        student.setStudentId(resultSet.getString("student_id"));
        student.setStudentName(resultSet.getString("student_name"));
        student.setAge(resultSet.getInt("age"));
        resultList.add(student);
      });
      resultList.forEach((Student student) -> System.out.println(student));
    }catch (Exception exception){
      exception.printStackTrace();
    }
  }
}

以上就是SpringBoot快速配置数据源的方法的详细内容,更多关于SpringBoot 配置数据源的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解springboot采用多数据源对JdbcTemplate配置的方法

    springboot多数据源配置,代码如下 DataSourceConfig package com.rookie.bigdata.config; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.

  • springboot多数据源配置及切换的示例代码详解

    注:本文的多数据源配置及切换的实现方法是,在框架中封装,具体项目中配置及使用,也适用于多模块项目 配置文件数据源读取 通过springboot的Envioment和Binder对象进行读取,无需手动声明DataSource的Bean yml数据源配置格式如下: spring: datasource: master: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url:

  • Springboot mybais配置多数据源过程解析

    一.分包方式实现: 1.在application.properties中配置两个数据库: #druid连接池 #dataSoureOne(这里是我本地的数据源) spring.datasource.one.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.one.driver-class-name=com.mysql.jdbc.Driver spring.datasource.one.jdbc-url=jdbc:mysql

  • springboot配置多数据源的实例(MongoDB主从)

    相信看过上一篇文章的小伙伴已经知道了, 这章要讲的就是MongoDB主从配置. 在这边文章中,你将要学到的是在项目中配置主从数据库,并且兼容其他数据库哟..这些都是博主项目中需要并且比较重要的知识哦~ 好了,废话不多说,直接进主题. 1.pom依赖 <span style="white-space:pre"> </span><dependency> <groupId>org.springframework.boot</groupId

  • 解决Springboot2.1.x配置Activiti7单独数据源问题

    1|1简介 最近基于最新的Activiti7配置了SpringBoot2. 简单上手使用了一番.发现市面上解决Activiti7的教程很少,采坑也比较多,在Activiti6配置数据源和Activiti7有所区别,基于Activiti6在Activiti7里是无法正常使用的.接下来让我们看下区别. 1|2问题 Activiti6多数据源配置 6的配置比较简单点. 先加入配置: # activiti 数据源 spring.datasource.activiti.driver=com.mysql.j

  • SpringBoot整合JPA数据源方法及配置解析

    一.创建项目并导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dr

  • springboot下配置多数据源的方法

    一.springboot 简介 SpringBoot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run". 我们为Spring平台及第三方库提 供开箱即用的设置,这样你就可以有条不紊地开始.多数Spring Boot应用需要很少的Spring配置. 你可以使用SpringBoot创建Java应用,并使用 java -jar 启动它或采用传统的war部署方式.我们也提供了一个运行"spring 脚本"的命令行工具. 二.传统的Dat

  • SpringBoot Mybatis如何配置多数据源并分包

    看了不少网上关于多数据源的配置,大致可分为两类,分包方式和通过切面方式: 样例已上传至github:https://github.com/dadachao/multids 第一个子项目ds01即时使用分包方式完成多数据源配置. 总结项目中出现的问题和解决办法: 数据库的连接信息: 连接信息是写在db.properties文件中的: #数据库ds1 spring.datasource.ds1.driver-class-name=com.mysql.cj.jdbc.Driver spring.dat

  • springboot 配置DRUID数据源的方法实例分析

    本文实例讲述了springboot 配置DRUID数据源的方法.分享给大家供大家参考,具体如下: druid 是阿里开源的数据库连接池. 开发时整合 druid 数据源过程. 1.修改pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> &l

  • SpringBoot使用Druid数据源的配置方法

    Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池) 一.依赖 为了测试,使用jdbcTemplate <!-- jdbcTemplate --> <dependency> <groupId>org.springframework.boot</groupId> <artifa

  • springboot v2.0.3版本多数据源配置方法

    本篇分享的是springboot多数据源配置,在从springboot v1.5版本升级到v2.0.3时,发现之前写的多数据源的方式不可用了,捕获错误信息如: 异常:jdbcUrl is required with driverClassName. 先来说下之前的多数据源配置如: spring: datasource: url: jdbc:sqlserver://192.168.122.111;DatabaseName=flight username: sa password: 1234.abc

随机推荐