1.数据库连接池简介
数据库连接池是个容器,负责分配、管理数据库连接(Connection)。它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。
好处:
资源重用。 提升系统响应速度。避免数据库连接遗漏。
2.数据库连接池实现
标准接口:DataSource
官方(SUN)提供的数据库连接池标准接口,由第三方组织实现此接口。
功能:获取连接
Connection getConnection()
常见的数据库连接池:DBCP、C3Po、Druid
Druid(德鲁伊)
Druid连接池是阿里巴巴开源的数据库连接池项目
功能强大,性能优秀,是Java语言最好的数据库连接池之一。
1.导入jar包
<!-- 阿里数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
2.在yml文件中配置Druid数据源配置
#数据库配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/studentgrades?serverTimezone=Asia/Shanghai
username: root
password: 2001
type: com.alibaba.druid.pool.DruidDataSource #指定数据源的类型
initialSize: 5 #初始化时建立物理连接的个数
minIdle: 1 #最小连接池数量
maxActive: 20 #最大连接池数量
3.配置后在config包中设置数据源配置
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
import java.util.HashMap;
/*
@Configuration 配置注解 表示此类是springBoot项目中一个配置类,sprngboot启动时会扫描
*/
@Configuration
public class DruidDataSourceConfig {
/*
@Bean == <bean id="" class=""> 作用在方法上,方法中会产生一个对象,最终把此对象交给spring容器
*/
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druid() {
DruidDataSource dataSource = new DruidDataSource();
//dataSource.setInitialSize();
return dataSource;
}
//后台监控:web.xml
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean<StatViewServlet> bean
=new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
//后台需要有人登录,账号密码配置
HashMap<String,String> initParameters=new HashMap<>();
//增加配置
initParameters.put("loginUsername","admin"); //登录的key,固定的loginUsername loginPassword
initParameters.put("loginPassword","123456");
//允许谁可以访问
initParameters.put("allow","");
//禁止谁可以访问 initParameters.put("用户名","IP");
bean.setInitParameters(initParameters);//设置初始化参数
return bean;
}
}
4.访问后端:输入开始设置的密码之后
便可以访问查看数据源状况