中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot如何實現快速配置數據源

發布時間:2020-10-27 16:28:09 來源:億速云 閱讀:230 作者:Leah 欄目:開發技術

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

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临汾市| 永定县| 剑川县| 都兰县| 贵定县| 丰顺县| 呼玛县| 巩留县| 罗定市| 岗巴县| 拜泉县| 双峰县| 三江| 乌兰察布市| 龙门县| 哈密市| 抚州市| 确山县| 汨罗市| 巴东县| 福安市| 邳州市| 濉溪县| 怀仁县| 塘沽区| 库尔勒市| 比如县| 罗江县| 济源市| 满城县| 万州区| 武胜县| 上虞市| 凉山| 易门县| 永丰县| 罗平县| 普兰店市| 郧西县| 隆子县| 西安市|