当前位置: 首页 > 编程笔记 >

SpringBoot快速配置数据源的方法

程淮晨
2023-03-14
本文向大家介绍SpringBoot快速配置数据源的方法,包括了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 配置数据源的资料请关注小牛知识库其它相关文章!

 类似资料:
  • 本文向大家介绍springboot v2.0.3版本多数据源配置方法,包括了springboot v2.0.3版本多数据源配置方法的使用技巧和注意事项,需要的朋友参考一下 本篇分享的是springboot多数据源配置,在从springboot v1.5版本升级到v2.0.3时,发现之前写的多数据源的方式不可用了,捕获错误信息如: 异常:jdbcUrl is required with driver

  • 本文向大家介绍springboot 配置DRUID数据源的方法实例分析,包括了springboot 配置DRUID数据源的方法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了springboot 配置DRUID数据源的方法。分享给大家供大家参考,具体如下: druid 是阿里开源的数据库连接池。 开发时整合 druid 数据源过程。 1.修改pom.xml 增加上面的配置。 2.编

  • 本文向大家介绍springboot + mybatis配置多数据源示例,包括了springboot + mybatis配置多数据源示例的使用技巧和注意事项,需要的朋友参考一下 在实际开发中,我们一个项目可能会用到多个数据库,通常一个数据库对应一个数据源。 代码结构: 简要原理: 1)DatabaseType列出所有的数据源的key---key 2)DatabaseContextHolder是一个线

  • 该章节用于帮助用户快速配置 云联壹云 环境. 初次使用时,请按照本章节的步骤进行配置 云联壹云 平台来管理多云环境。 配置云账号 配置认证源 配置项目和用户 当完成上面的配置后,您可以在 云联壹云 平台管理多云资源,如查看监控信息、查看费用分析、在项目中创建资源等。更多功能介绍,请参考主要功能。 配置云账号 该章节用于帮助用户配置云账号,纳管云平台。 配置认证源 该章节用于帮助用户配置认证源并支持

  • 我刚开始使用springboot,我一直在尝试用它和spring security来配置一个项目,但不幸的是,我无法运行它。我得到了下一个错误: 嵌套的异常是org。springframework。靴子自动配置。jdbc。DataSourceProperties$DataSourceBeanCreationException:未能确定合适的驱动程序类 应用程序无法启动 描述: 配置DataSour

  • springboot 配置多源数据库问题。 测试了一下springboot配置多源数据库,mysql和postgresql,yml配置如下: 运行程序,出现如下错误: …… 9:30:59:048] [INFO] - org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.prepareWebA