欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot快速配置數(shù)據(jù)源的方法

 更新時(shí)間:2020年10月16日 10:53:20   作者:拾階求上  
這篇文章主要介紹了SpringBoot快速配置數(shù)據(jù)源的方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下

SpringBoot如何快速配置數(shù)據(jù)源;有如下兩種方式:

  1. 通過spring-boot-starter-jdbc快速配置數(shù)據(jù)源
  2. 自定義數(shù)據(jù)源DataSource

首先我們需要明確數(shù)據(jù)源DataSource有什么作用:

  1. 通過DataSource可以獲取數(shù)據(jù)庫連接Connection
  2. 通過DataSource創(chuàng)建JdbcTemplate操作數(shù)據(jù)庫

實(shí)際項(xiàng)目中,我們在配置數(shù)據(jù)源的時(shí)候會指定數(shù)據(jù)庫連接池,比如流行的Hikari(spring默認(rèn)的數(shù)據(jù)庫連接池)、C3p0、Dbcp2以及阿里巴巴的Druid。

一、使用數(shù)據(jù)庫連接池

應(yīng)用在操作數(shù)據(jù)庫的時(shí)候,直接從數(shù)據(jù)庫連接池獲取連接,而不需要每次創(chuàng)建新的連接。

至于數(shù)據(jù)庫連接池的好處,總結(jié)就是: 應(yīng)用創(chuàng)建和銷毀連接的代價(jià)是很大的,使用數(shù)據(jù)庫連接池可以很好的復(fù)用連接,節(jié)省開銷,方便管理,簡化開發(fā)。

可能有些場景我們不想使用SpringBoot JDBC默認(rèn)的數(shù)據(jù)源,我需要引入數(shù)據(jù)庫連接池,然后自定義數(shù)據(jù)源,指定數(shù)據(jù)源類型。

下面以Dbcp2數(shù)據(jù)庫連接池配置數(shù)據(jù)源為例。

二、配置依賴

引入dbcp2的數(shù)據(jù)庫連接池已經(jīng)相關(guān)依賴。

<!-- dbcp2數(shù)據(jù)庫連接池 -->
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-dbcp2</artifactId>
  <version>2.7.0</version>
</dependency>
<!--數(shù)據(jù)庫驅(qū)動(dòng)-->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.18</version>
</dependency>
<!-- 提供操作數(shù)據(jù)庫的標(biāo)準(zhǔn)口徑 -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>5.2.2.RELEASE</version>
  <scope>compile</scope>
</dependency>

三、編寫配置項(xiàng)

在application.properties文件中配置數(shù)據(jù)庫連接屬性。

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();
  }
}

這邊我們可以看到我們創(chuàng)建的DataSource類型為BasicDataSource類型的。并且BasicDataSource來源于之前配置的dbcp2依賴的jar包中。

五、調(diào)用驗(yàn)證

下面我們使用junit來驗(yàn)證以下數(shù)據(jù)源配置的正確與否:

@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快速配置數(shù)據(jù)源的方法的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot 配置數(shù)據(jù)源的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • tcc分布式事務(wù)框架體系解析

    tcc分布式事務(wù)框架體系解析

    這篇文章主要為大家介紹了tcc分布式事務(wù)框架體系結(jié)構(gòu)的解析說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • SpringBoot攔截器的使用小結(jié)

    SpringBoot攔截器的使用小結(jié)

    今天給大家總結(jié)一下SpringBoot下攔截器的使用,需要的朋友參考下吧
    2017-05-05
  • JAVA使用JDBC連接oracle數(shù)據(jù)庫的詳細(xì)過程

    JAVA使用JDBC連接oracle數(shù)據(jù)庫的詳細(xì)過程

    JDBC是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成,下面這篇文章主要給大家介紹了關(guān)于JAVA使用JDBC連接oracle數(shù)據(jù)庫的詳細(xì)過程,需要的朋友可以參考下
    2023-05-05
  • JAVA IO API使用詳解

    JAVA IO API使用詳解

    本文通過理論、用法、實(shí)例詳細(xì)說明了JAVA IO的使用,大家參考其中的實(shí)例代碼實(shí)現(xiàn)自己的JAVA IO程序
    2013-11-11
  • Java函數(shù)式接口Supplier接口實(shí)例詳解

    Java函數(shù)式接口Supplier接口實(shí)例詳解

    這篇文章主要介紹了Java函數(shù)式接口Supplier接口實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 對ArrayList和LinkedList底層實(shí)現(xiàn)原理詳解

    對ArrayList和LinkedList底層實(shí)現(xiàn)原理詳解

    今天小編就為大家分享一篇對ArrayList和LinkedList底層實(shí)現(xiàn)原理詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 簡單介紹Java編程中的線程池

    簡單介紹Java編程中的線程池

    這篇文章主要介紹了Java編程中的線程池,進(jìn)程和線程的并發(fā)是Java編程中的重要環(huán)節(jié),需要的朋友可以參考下
    2015-09-09
  • java中l(wèi)ong數(shù)據(jù)類型轉(zhuǎn)換為int類型

    java中l(wèi)ong數(shù)據(jù)類型轉(zhuǎn)換為int類型

    這篇文章主要講解Java中基本數(shù)據(jù)類型,java long 類型與其java int類型的轉(zhuǎn)換的幾種方法,希望能給大家做一個(gè)參考
    2016-07-07
  • SpringBoot使用布隆過濾器解決緩存穿透問題

    SpringBoot使用布隆過濾器解決緩存穿透問題

    緩存穿透是指當(dāng)緩存系統(tǒng)中無法命中需要的數(shù)據(jù)時(shí),會直接請求底層存儲系統(tǒng)(如數(shù)據(jù)庫),但是如果請求的數(shù)據(jù)根本不存在,那么大量的請求就會直接穿透緩存層,本文將給大家介紹一下SpringBoot使用布隆過濾器解決緩存穿透問題,需要的朋友可以參考下
    2023-10-10
  • Jenkins環(huán)境搭建實(shí)現(xiàn)過程圖解

    Jenkins環(huán)境搭建實(shí)現(xiàn)過程圖解

    這篇文章主要介紹了Jenkins環(huán)境搭建實(shí)現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評論