SpringBoot快速配置數(shù)據(jù)源的方法
SpringBoot如何快速配置數(shù)據(jù)源;有如下兩種方式:
- 通過spring-boot-starter-jdbc快速配置數(shù)據(jù)源
- 自定義數(shù)據(jù)源DataSource
首先我們需要明確數(shù)據(jù)源DataSource有什么作用:
- 通過DataSource可以獲取數(shù)據(jù)庫連接Connection
- 通過DataSource創(chuàng)建JdbcTemplate操作數(shù)據(jù)庫
實際項目中,我們在配置數(shù)據(jù)源的時候會指定數(shù)據(jù)庫連接池,比如流行的Hikari(spring默認(rèn)的數(shù)據(jù)庫連接池)、C3p0、Dbcp2以及阿里巴巴的Druid。
一、使用數(shù)據(jù)庫連接池
應(yīng)用在操作數(shù)據(jù)庫的時候,直接從數(shù)據(jù)庫連接池獲取連接,而不需要每次創(chuàng)建新的連接。
至于數(shù)據(jù)庫連接池的好處,總結(jié)就是: 應(yīng)用創(chuàng)建和銷毀連接的代價是很大的,使用數(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ū)動--> <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>
三、編寫配置項
在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)用驗證
下面我們使用junit來驗證以下數(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)文章!
- springboot多數(shù)據(jù)源配置及切換的示例代碼詳解
- SpringBoot整合JPA數(shù)據(jù)源方法及配置解析
- SpringBoot Mybatis如何配置多數(shù)據(jù)源并分包
- Springboot mybais配置多數(shù)據(jù)源過程解析
- springboot 配置DRUID數(shù)據(jù)源的方法實例分析
- 解決Springboot2.1.x配置Activiti7單獨數(shù)據(jù)源問題
- springboot v2.0.3版本多數(shù)據(jù)源配置方法
- 詳解springboot采用多數(shù)據(jù)源對JdbcTemplate配置的方法
- SpringBoot使用Druid數(shù)據(jù)源的配置方法
- springboot配置多數(shù)據(jù)源的實例(MongoDB主從)
- springboot下配置多數(shù)據(jù)源的方法
相關(guān)文章
SpringBoot整合Druid實現(xiàn)數(shù)據(jù)庫連接池和監(jiān)控
Druid是Java語言中使用的比較多的數(shù)據(jù)庫連接池。Druid還提供了強大的監(jiān)控和擴展功能。面將介紹SpringBoot整合Druid實現(xiàn)數(shù)據(jù)庫連接池和監(jiān)控功能,感興趣的可以了解一下2021-08-08
Hibernate中l(wèi)oad方法與get方法的區(qū)別
Hibernate中有兩個極為相似的方法get()與load(),他們都可以通過指定的實體類與ID從數(shù)據(jù)庫中讀取數(shù)據(jù),并返回對應(yīng)的實例,但Hibernate不會搞兩個完全一樣的方法的2016-01-01
springboot接入方式對接股票數(shù)據(jù)源API接口的操作方法
本文介紹了如何使用Java語言創(chuàng)建一個項目來對接StockTV的API接口,包括使用HttpURLConnection或OkHttp發(fā)送HTTP請求,使用Java-WebSocket庫處理WebSocket連接等步驟,項目結(jié)構(gòu)包括添加依賴、創(chuàng)建基礎(chǔ)工具類、實現(xiàn)股票API、外匯API等,感興趣的朋友一起看看吧2025-03-03
idea全局搜索快捷鍵超詳細(xì)總結(jié)(推薦!)
在實際開發(fā)中項目會非常多,如何在項目中快速定位,你說需要找到的類或方法,可以利用idea的全局搜索功能,下面這篇文章主要給大家分享介紹了關(guān)于idea全局搜索快捷鍵超詳細(xì)總結(jié)的相關(guān)資料,需要的朋友可以參考下2023-01-01
Java中將String轉(zhuǎn)換為int的多種方法
字符串轉(zhuǎn)換為整數(shù)是一個常見需求,本文主要介紹了Java中將String轉(zhuǎn)換為int的多種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
SpringBoot如何讀取mock數(shù)據(jù)(高效調(diào)試接口)
本文介紹如何在SpringBoot項目中讀取resources目錄下的mock數(shù)據(jù)文件,以便高效調(diào)試接口,在 Spring Boot 項目中,通常會將靜態(tài)資源或配置文件放在 src/main/resources 目錄下,下面通過實例給大家詳細(xì)介紹,感興趣的朋友一起看看吧2024-12-12
解決Intellij IDEA運行報Command line is too long的問題
這篇文章主要介紹了解決Intellij IDEA運行報Command line is too long的問題,本文通過兩種方案給大家詳細(xì)介紹,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
springboot 整合 nacos 配置實現(xiàn)多個環(huán)境不同配置
本文介紹了Nacos配置中心的優(yōu)勢,包括與Apollo的性能對比,Nacos服務(wù)端的安裝與配置,以及如何在SpringBoot項目中集成Nacos進(jìn)行多環(huán)境配置,提供了詳細(xì)的步驟,包括下載、安裝、配置中心的創(chuàng)建和項目集成,旨在幫助開發(fā)者更好地使用Nacos進(jìn)行項目配置管理2024-09-09

