Java文档阅读笔记-Spring Boot JDBC

Spring Boot JDBC提供了使用引导和相关驱动去连接某数据库引用。

在Spring Boot JDBC中与数据库相关的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这机制包含管理并发连接的数据库请求,换句话来说,这个机制促进的连接的重用,数据库并发连接的内存缓存叫做连接池。连接池模块维护了所有关于标准JDBC驱动的连接。

如下图:

这个机制促进了数据库访问的速度,降低了数据库连接的数量。提升了我们程序的性能。Connection pool执行如下的任务:

1. 管理有效的连接;

2. 分配新的连接;

3. 关闭连接。

如上图,这个连接池中有4个连接和一个数据源,还有一些客户端。

第一张图里面有3个不同的连接,和1个空闲的连接。在第二张图里面Client 3被断开了连接,所有他将会变成空闲状态。

但客户端完成了工作,他将会释放连接,变成空闲状态。

 

HiKkariCP

Spring Boot 2.x中默认的连接池为HikariCP。他提供了企业级读数据的特点及更好的性能。HikariCP是JDCB数据源的实现,他提供了连接池机制。

注意以下几点:

1. HikariCP如果在环境变量中,Spring Boot会自动将其配置。

2. 如果在环境变量中找不到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驱动如下:

<dependency>  
	<groupId>mysql</groupId>  
	<artifactId>mysql-connector-java</artifactId>  
</dependency>     
 

使用下面的配置文件连接数据库:

spring.datasource.url=jdbc:mysql://192.168.1.4:3306/test  
spring.datasource.username=javatpoint  
spring.datasource.password=password  

Orcale数据库:

spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl  
spring.datasource.username=system  
spring.datasource.password=Password123  

 

 

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页