SpringBoot的数据库连接概述(一)

SpringBoot项目经常要连接数据库,可以连接多种数据库,如msql、oracle、sqlserver等。连接数据库时,需要两个模块配合才能完成。一个是数据源类型模块,一个是数据库驱动模块。

数据源类型模块有很多种,比如:tomcat-jdbc、c3p0、hikari、druid等。

数据库驱动模块是跟数据库有关的,最常用的数据库是mysql,其驱动模块为:com.mysql.jdbc.Driver。

 

数据源类型模块

SpringBoot默认支持4种数据源类型(定义在 org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 中),分别如下。

org.apache.tomcat.jdbc.pool.DataSource(springboot2.0以前默认是这个)
com.zaxxer.hikari.HikariDataSource(springboot2.0以后默认是这个)
org.apache.commons.dbcp.BasicDataSource
org.apache.commons.dbcp2.BasicDataSource

pom依赖为:

<dependencies>

	<!-- 添加MySQL依赖 -->
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
	</dependency>

	<!-- 添加JDBC依赖,SpringBoot自带的 -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
    
        <!-- 添加Tomcat-JDBC依赖 -->
	<dependency>
		<groupId>org.apache.tomcat</groupId>
		<artifactId>tomcat-jdbc</artifactId>
	</dependency>

	<!-- 添加HikariCP依赖 -->
	<dependency>
		<groupId>com.zaxxer</groupId>
		<artifactId>HikariCP</artifactId>
	</dependency>

	<!-- 添加DBCP依赖 -->
	<dependency>
		<groupId>commons-dbcp</groupId>
		<artifactId>commons-dbcp</artifactId>
	</dependency>

	<!-- 添加DBCP2依赖 -->
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-dbcp2</artifactId>
	</dependency>

</dependencies>

当我们引入spring-boot-start-jdbc依赖时,其实里面就包含了 Tomcat-JDBC 的依赖。也就是说引入了spring-boot-start-jdbc依赖,就不用再引入Tomcat-JDBC 的依赖了。(从2.0开始,jdbc包里就不再引用tomcat-jdbc了,引用了HikariCP,意味着从2.0开始,默认的数据源类型为HikariCP了)

添加完依赖后,还需要在配置文件(application.properties或者application.yml)中进行配置。

# application.properties文件中添加如下配置:
spring.datasource.url=jdbc:mysql://localhost:3306/spd?characterEncoding=utf8
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456

切换数据源类型

在网上看到有两种方式:

方式一:排除其他的数据源依赖,仅保留需要的数据源依赖; 

方式二:通过在核心配置中通过spring.datasource.type属性指定数据源的类型;

比如将数据源类型有tomcat-jdbc切换为HikariCP时。

方式一:

<!-- 添加jdbc,并排除Tomcat-JDBC -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-jdbc</artifactId>
	<exclusions>
		<exclusion>
		    <groupId>org.apache.tomcat</groupId>
			<artifactId>tomcat-jdbc</artifactId>
		</exclusion>
	</exclusions>
</dependency>
<!-- 添加HikariCP依赖 -->
<dependency>
	<groupId>com.zaxxer</groupId>
	<artifactId>HikariCP</artifactId>
</dependency>

方式二(推荐该方式):

spring.datasource.type=com.zaxxer.hikari.HikariDataSource

其他的数据源类型

如果想引用其他的数据源也可以。Druid、c3p0。

第一步添加依赖

<!-- 添加Druid依赖 -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid</artifactId>
	<version>1.1.6</version>
</dependency>

第二步配置文件进行配置

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

第三步定义数据源

@Configuration
public class DataSourceConfig {
 
	@Autowired
	private Environment env;
 
	@Bean
	public DataSource getDataSource() {
		DruidDataSource dataSource = new DruidDataSource();
		dataSource.setUrl(env.getProperty("spring.datasource.url"));
		dataSource.setUsername(env.getProperty("spring.datasource.username"));
		dataSource.setPassword(env.getProperty("spring.datasource.password"));
		return dataSource;
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值