連接到生產(chǎn)數(shù)據(jù)庫
生產(chǎn)數(shù)據(jù)庫連接可以使用自動配置的DataSource.
- 我們更喜歡Tomcat池DataSource的性能和并發(fā)性,所以如果可用,我們總是選擇它。
- 否則,如果HikariCP可用,我們將使用它。
- 如果Tomcat池數(shù)據(jù)源和HikariCP都不可用,并且如果Commons DBCP可用,我們將使用它,但是我們不建議在生產(chǎn)中使用它,并且不支持它。
- 最后,如果Commons DBCP2可用,我們將使用它。
使用spring-boot-starter-jdbc或spring-boot-starter-data-jpa,將自動獲得依賴關(guān)系tomcat-jdbc。
可以自己手動配置數(shù)據(jù)庫連接池,如果自己自底你DataSource bean,則就不會自動配置數(shù)據(jù)庫連接池。
DataSource配置由外部屬性控制spring.datasource.*。例如,可以在application.properties中配置:
spring.datasource.url = jdbc:mysql:// localhost / test
spring.datasource.username = dbuser
spring.datasource.password =
dbpass spring.datasource.driver-class-name = com.mysql.jdbc.Driver
你至少應(yīng)該使用該spring.datasource.url屬性指定url,否則Spring Boot將嘗試自動配置嵌入式數(shù)據(jù)庫。
通常你不一定需要指定driver-class-name,因為Spring Boot根據(jù)大多數(shù)數(shù)據(jù)庫url可以推斷出它。
查看DataSourceProperties 更多支持的選項。這些是標(biāo)準(zhǔn)選項,無論實際實現(xiàn)如何。也可以使用其各自的前綴微調(diào)實現(xiàn)特定的設(shè)置(spring.datasource.tomcat.,spring.datasource.hikari.,和spring.datasource.dbcp2.*)。有關(guān)更多詳細(xì)信息,請參閱您正在使用的連接池實現(xiàn)的文檔。
使用JdbcTemplate
Spring JdbcTemplate和NamedParameterJdbcTemplateclasses是自動配置的,可以用@Autowire直接將它們注入自己的bean中。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
@Component
public class MyBean {
private final JdbcTemplate jdbcTemplate;
@Autowired
public MyBean(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
// ...
}