目录
关于连接池:
数据库连接池的作用是管理和复用数据库连接,以提高数据库访问的性能和效率。它通过预先创建一定数量的数据库连接并将其存放在连接池中,当应用程序需要与数据库交互时,可以从连接池中获取一个可用的连接,使用完毕后归还给连接池,而不是频繁地创建和关闭数据库连接。
补充:app和db在同一台电脑上连接传输快还是两台电脑上通过网络传输连接传输快?两台网络传输快,比如在一台电脑上把c盘拷贝到d盘,一般电脑大概速度在70,80MB每秒,现在的1000Mbps网卡约等于120MB,而且还有更快的网卡
数据库连接池的具体表现是`javax.sql.DataSource`类型的对象,它用于管理若干个数据库连接(`Connection`对象),当需要连接到数据库时,从`DataSource`中取出`Connection`对象即可!
`DataSource`是一个接口,有许多第三方的实现,例如:
- `commons-dbcp2`(是早期的`commons-dbcp`的升级款)
- `Hikari`
- `Druid`
- 其它
在绝大部分情况下,Spring Boot项目默认使用的是Hikari
。
如果要替换为其它数据库连接池,首先,需要添加对应的依赖,然后,在配置文件中显式的指定对应的DataSource
。
以替换为Durid
为例,首先,需要添加druid-spring-boot-starter
依赖项!先在父项目(聚合项目)
中添加:
[SpringBoot]创建聚合项目_万物更新_的博客-CSDN博客
并在子项目中添加依赖项:
然后,在application.properties
/ application.yml
中添加配置,以.properties
文件的配置为例:
spring.datasource.type=数据库连接池的类的全限定名
通常,还会配置:
spring.datasource.type.druid.initial-size=初始化连接数
spring.datasource.type.druid.max-active=最大激活数
以.yml
文件配置为例:
[SpringBoot]YAML语法的配置_万物更新_的博客-CSDN博客
具体步骤过程:
连接池类写入的代码:
public class DBUtil {
/*
阿里提供的连接池
数据库连接池主要有两个作用:
1:控制连接数量
2:重用连接
*/
private static DruidDataSource ds;
static {
initDataSource();//初始化连接池
}
private static void initDataSource() {
ds=new DruidDataSource();
ds.setUsername("root");//设置数据库用户名
ds.setPassword("root");//数据库密码
ds.setUrl("jdbc:mysql://localhost:3306/productjdbc?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true");//设置数据库位置
ds.setInitialSize(5);//连接池的初始容量,创建后内部默认5条连接
ds.setMaxActive(50);//设置最大的连接数
}
/*
获取一个数据库连接
*/
public static Connection getConnection() throws SQLException {
/*
当我们调用连接池的getConnection()时,返回的连接是连接池提供的连接,内部封装着
真是的数据库连接.
当我们调用getConnection()时,连接池会将其中的一个空闲连接返回,返回前会设置它的
转台为被租借.此时其它线程就不能再获取到这个连接了.
当我们使用外该连接后会调用该连接的close()方法,此时该方法并非将实际的数据库连接关闭,
而是将该连接的状态改为空闲,此时其它线程就可以获取到该连接了.
*/
return ds.getConnection();
}
}