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í)際項(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)文章!
- springboot多數(shù)據(jù)源配置及切換的示例代碼詳解
- SpringBoot整合JPA數(shù)據(jù)源方法及配置解析
- SpringBoot Mybatis如何配置多數(shù)據(jù)源并分包
- Springboot mybais配置多數(shù)據(jù)源過程解析
- springboot 配置DRUID數(shù)據(jù)源的方法實(shí)例分析
- 解決Springboot2.1.x配置Activiti7單獨(dú)數(shù)據(jù)源問題
- springboot v2.0.3版本多數(shù)據(jù)源配置方法
- 詳解springboot采用多數(shù)據(jù)源對JdbcTemplate配置的方法
- SpringBoot使用Druid數(shù)據(jù)源的配置方法
- springboot配置多數(shù)據(jù)源的實(shí)例(MongoDB主從)
- springboot下配置多數(shù)據(jù)源的方法
相關(guān)文章
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-05Java函數(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)原理詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10java中l(wèi)ong數(shù)據(jù)類型轉(zhuǎn)換為int類型
這篇文章主要講解Java中基本數(shù)據(jù)類型,java long 類型與其java int類型的轉(zhuǎn)換的幾種方法,希望能給大家做一個(gè)參考2016-07-07Jenkins環(huán)境搭建實(shí)現(xiàn)過程圖解
這篇文章主要介紹了Jenkins環(huán)境搭建實(shí)現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09