连接到生产数据库
生产数据库连接可以使用自动配置的DataSource.
- 我们更喜欢Tomcat池DataSource的性能和并发性,所以如果可用,我们总是选择它。
- 否则,如果HikariCP可用,我们将使用它。
- 如果Tomcat池数据源和HikariCP都不可用,并且如果Commons DBCP可用,我们将使用它,但是我们不建议在生产中使用它,并且不支持它。
- 最后,如果Commons DBCP2可用,我们将使用它。
使用spring-boot-starter-jdbc或spring-boot-starter-data-jpa,将自动获得依赖关系tomcat-jdbc。
可以自己手动配置数据库连接池,如果自己自底你DataSource bean,则就不会自动配置数据库连接池。
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
你至少应该使用该spring.datasource.url属性指定url,否则Spring Boot将尝试自动配置嵌入式数据库。
通常你不一定需要指定driver-class-name,因为Spring Boot根据大多数数据库url可以推断出它。
查看DataSourceProperties 更多支持的选项。这些是标准选项,无论实际实现如何。也可以使用其各自的前缀微调实现特定的设置(spring.datasource.tomcat.,spring.datasource.hikari.,和spring.datasource.dbcp2.*)。有关更多详细信息,请参阅您正在使用的连接池实现的文档。
使用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;
}
// ...
}