放心的网站设计制作,网站正在建设html,陇南地网站建设,商城网站建设所必备的四大功能是哪些springboot框架中可以使用druid进行数据库连接池#xff0c;下面介绍druid在springboot中使用和参数配置介绍。 数据库连接池#xff08;Druid#xff09;是一种用于管理数据库连接的机制#xff0c;其工作原理和常见使用方法如下#xff1a;
原理#xff1a;数据库连接…springboot框架中可以使用druid进行数据库连接池下面介绍druid在springboot中使用和参数配置介绍。 数据库连接池Druid是一种用于管理数据库连接的机制其工作原理和常见使用方法如下
原理数据库连接池通过预先建立一定数量的数据库连接并在程序需要时重复使用这些已存在的连接而不是每次都新建一个从而避免了频繁创建和销毁数据库连接带来的开销。这种技术可以显著提高系统的响应速度并减少资源消耗。连接池中的连接数量通常由最大连接数和最小连接数来控制以达到最佳的性能和资源利用率。使用步骤
定义配置文件首先需要定义Druid的配置文件例如druid.properties在其中配置数据库的相关信息如URL、用户名、密码等。编程实例在代码中实例化Druid数据源然后通过这个数据源获取数据库连接。自定义JDBC工具类创建一个工具类来封装数据库连接的获取和释放操作以便在程序中重复使用。
配置参数Druid连接池提供了丰富的配置参数包括最大连接数、最小连接数、空闲连接的保持时间等以便根据实际需求进行优化。常见问题在使用过程中可能遇到一些问题如连接泄漏、SQL注入等需要注意防范和解决。
总之数据库连接池技术是提高系统性能和资源利用率的重要手段Druid作为其中的一种实现提供了丰富的功能和灵活的配置选项。在使用过程中需要注意配置和优化并根据具体情况选择合适的连接池大小和保持策略。
在springboot中的使用
1、maven中引入依赖
dependency groupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion${druid.version}/version
/dependency
2、druid配置项和解析
spring:datasource:druid:# 指定数据源类型为DruidDataSourcetype: com.alibaba.druid.pool.DruidDataSource# 数据库连接URLurl: jdbc:mysql://localhost:3306/test?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/ShanghaiuseSSLfalse# 数据库用户名username: root# 数据库密码password: xx123!## 连接池初始化时创建的连接数initialSize: 5# 连接池中最大连接数maxActive: 50# 连接池中最小空闲连接数minIdle: 5# 连接池中最大空闲连接数maxIdle: 10# 获取连接时的最大等待时间毫秒maxWait: 60000# 间隔多久检测一次空闲连接毫秒timeBetweenEvictionRunsMillis: 60000# 连接池中连接最小空闲时间毫秒minEvictableIdleTimeMillis: 300000# 用于检测连接是否有效的SQL语句validationQuery: SELECT 1# 是否开启空闲连接的检测testWhileIdle: true# 是否开启连接的检测功能在获取连接时检测连接是否有效testOnBorrow: false# 是否开启连接的检测功能在归还连接时检测连接是否有效testOnReturn: false# 是否缓存PreparedStatement对象poolPreparedStatements: true# 缓存PreparedStatement对象的最大数量maxPoolPreparedStatementPerConnectionSize: 20# 配置监控统计用的filter允许监控统计filters: stat# 配置扩展属性用于监控统计分析SQL性能等
2、url: 数据库连接的URL。
注意事项需要根据实际情况修改URL。
3、username: 数据库用户名。
4、password: 数据库密码
包含一些特殊字符的时候需要加引号。
5、initialSize: 连接池初始化时创建的连接数。
需要根据实际情况设置连接数。连接池创建连接时会创建initialSize个连接以确保应用程序在启动时可以立即获取到数据库连接。
6. maxActive: 连接池中最大连接数。需要根据实际情况设置最大连接数。如果连接池中连接数达到maxActive则应用程序获取连接的请求将被阻塞直到有连接被释放。
7. minIdle: 连接池中最小空闲连接数。 需要根据实际情况设置最小空闲连接数。如果连接池中空闲连接数少于minIdle连接池会创建新的连接以达到minIdle。
8. maxIdle: 连接池中最大空闲连接数。 需要根据实际情况设置最大空闲连接数。如果连接池中空闲连接数超过maxIdle连接池会关闭多余的连接以避免占用过多的资源。
9. maxWait: 获取连接时的最大等待时间。需要根据实际情况设置最大等待时间。如果连接池中没有可用连接且已经达到最大连接数则应用程序获取连接的请求将被阻塞最多等待maxWait毫秒。10. timeBetweenEvictionRunsMillis: 间隔多久检测一次空闲连接毫秒。 需要根据实际情况设置检测间隔时间。连接池会定期检查空闲连接的状态如果空闲时间超过minEvictableIdleTimeMillis则将连接关闭。
11. minEvictableIdleTimeMillis: 连接池中连接最小空闲时间毫秒。 需要根据实际情况设置最小空闲时间。连接池会定期检查空闲连接的状态如果空闲时间超过minEvictableIdleTimeMillis则将连接关闭。12. validationQuery: 用于检测连接是否有效的SQL语句。 需要根据实际情况设置SQL语句。连接池会使用这个SQL语句来检测连接是否有效。
13. testWhileIdle: 是否开启空闲连接的检测。 需要根据实际情况设置是否开启空闲连接的检测。如果开启连接池会定期检查空闲连接的状态。
14. testOnBorrow: 是否开启连接的检测功能在获取连接时检测连接是否有效。 需要根据实际情况设置是否开启连接的检测功能。如果开启连接池在获取连接时会检查连接是否有效。
15. testOnReturn: 是否开启连接的检测功能在归还连接时检测连接是否有效。 需要根据实际情况设置是否开启连接的检测功能。如果开启连接池在归还连接时会检查连接是否有效。16. poolPreparedStatements: 是否缓存PreparedStatement对象。需要根据实际情况设置是否缓存PreparedStatement对象。如果开启连接池会缓存PreparedStatement对象以提高性能。17. maxPoolPreparedStatementPerConnectionSize: 缓存PreparedStatement对象的最大数量。 需要根据实际情况设置缓存的最大数量。如果开启了缓存PreparedStatement对象连接池会限制每个连接缓存的最大数量。
maxPoolPreparedStatementPerConnectionSize是Druid连接池的一个配置项用于配置连接池中缓存的PreparedStatement的最大数量。PreparedStatement是预编译的SQL语句可以提高SQL执行的效率和安全性避免SQL注入等安全问题。在使用Druid连接池时当开启了缓存PreparedStatement功能时每个连接都会缓存一定数量的PreparedStatement对象以便在需要执行SQL语句时能够快速获取。而maxPoolPreparedStatementPerConnectionSize就是用于配置每个连接中缓存的PreparedStatement的最大数量。需要注意的是缓存PreparedStatement虽然可以提高SQL执行的效率但同时也会占用一定的内存资源。因此需要根据实际情况进行合理配置。默认情况下该属性的值为10。在上面的配置中maxPoolPreparedStatementPerConnectionSize: 20表示将每个连接中缓存的PreparedStatement的最大数量设置为20个。18. filters: 配置监控统计用的filter允许监控统计。 如果要使用Druid的监控功能需要配置此项。stat表示使用Druid的监控功能。19. connectionProperties: 配置扩展属性用于监控统计分析SQL性能等。 druid.stat.mergeSql和druid.stat.slowSqlMillis是两个与SQL监控有关的属性。 druid.stat.mergeSql用于配置是否合并SQL。当该属性设置为true时Druid会将相同的SQL语句合并为一条以节省SQL统计的开销和提高统计精度。默认情况下该属性的值为false。 druid.stat.slowSqlMillis用于配置SQL执行的时间阈值单位为毫秒。当一条SQL执行的时间超过该阈值时Druid会将该SQL记录到慢SQL列表中以便进行分析和优化。默认情况下该属性的值为3000毫秒。