Java文档阅读笔记-Spring Boot JDBC
Spring Boot JDBC提供了使用引導和相關(guān)驅(qū)動去連接某數(shù)據(jù)庫引用。
在Spring Boot JDBC中與數(shù)據(jù)庫相關(guān)的bean有DataSouce,JdbcTemplate,NamedParamenterJdbcTemplate。在我們需要使用他的時候,可以使用自動注入的方式,如下例子:
@Autowired JdbcTemplate jdbcTemplate; @Autowired private NamedParameterJdbcTemplate jdbcTemplate;在application.properties文件中,需要配置DataSource及connection pooling。Spring Boot默認會選擇tomcat pooling的方式。
?
JDBC Connection Pooling
JDBC Connection pooling這機制包含管理并發(fā)連接的數(shù)據(jù)庫請求,換句話來說,這個機制促進的連接的重用,數(shù)據(jù)庫并發(fā)連接的內(nèi)存緩存叫做連接池。連接池模塊維護了所有關(guān)于標準JDBC驅(qū)動的連接。
如下圖:
這個機制促進了數(shù)據(jù)庫訪問的速度,降低了數(shù)據(jù)庫連接的數(shù)量。提升了我們程序的性能。Connection pool執(zhí)行如下的任務:
1. 管理有效的連接;
2. 分配新的連接;
3. 關(guān)閉連接。
如上圖,這個連接池中有4個連接和一個數(shù)據(jù)源,還有一些客戶端。
第一張圖里面有3個不同的連接,和1個空閑的連接。在第二張圖里面Client 3被斷開了連接,所有他將會變成空閑狀態(tài)。
但客戶端完成了工作,他將會釋放連接,變成空閑狀態(tài)。
?
HiKkariCP
Spring Boot 2.x中默認的連接池為HikariCP。他提供了企業(yè)級讀數(shù)據(jù)的特點及更好的性能。HikariCP是JDCB數(shù)據(jù)源的實現(xiàn),他提供了連接池機制。
注意以下幾點:
1. HikariCP如果在環(huán)境變量中,Spring Boot會自動將其配置。
2. 如果在環(huán)境變量中找不到HikariCP,那么Spring Boot將會找Tomcat JDBC Connection Pool。
3. 如果上面2個都沒找到,那么Spring Boot就會使用Apache Commons DBCP2充當JDBC Connection pool。
?
可以通過修改maven來配置connection pool。使用Tomcat JDBC connection Pool代替HikariCP,可以在maven中除掉HikariCP的依賴,添加tomcat-jdbc的依賴,如下pom.xml文件:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</ artifactId > <exclusions> <exclusion> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</ artifactId > </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> <version>9.0.10</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.9</version> <socpe>runtime</scoope> </dependency>上面的maven使用了Tomcat connection pool。
另外可以通過顯示配置的方式指定datasource,在application.properties中添加:
Spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource再application.properties配置如下增加性能:
spring.datasource.tomcat.initial-size=20 spring.datasource.tomcat.max-wait=25000 spring.datasource.tomcat.max-active=70 spring.datasource.tomcat.max-idle=20 spring.datasource.tomcat.min-idle=9 spring.datasource.tomcat.default-auto-commit=true添加MySQL驅(qū)動如下:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>使用下面的配置文件連接數(shù)據(jù)庫:
spring.datasource.url=jdbc:mysql://192.168.1.4:3306/test spring.datasource.username=javatpoint spring.datasource.password=passwordOrcale數(shù)據(jù)庫:
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl spring.datasource.username=system spring.datasource.password=Password123?
?
總結(jié)
以上是生活随笔為你收集整理的Java文档阅读笔记-Spring Boot JDBC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++工作笔记-对友元函数的进一步理解
- 下一篇: Java工作笔记-Nginx配置IPHa