Druid连接池自定义数据库密码加解密
时间: 2023-11-18 18:06:30 浏览: 51
Druid连接池提供了加密数据库密码的功能,可以通过配置文件中的属性进行设置。具体操作步骤如下:
1. 在配置文件中添加以下属性:
```
# 加密数据库密码
druid.filters=config,stat,wall,log,encoding
druid.filter.encoding.enable=true
druid.filter.encoding.key=yourKey
druid.filter.encoding.iv=yourIV
```
其中,`druid.filter.encoding.key`和`druid.filter.encoding.iv`分别为加密和解密时所需的密钥和向量,需要自行设置。
2. 在数据库连接URL中添加加密后的密码,格式为`password={DES}加密后的密码`。例如:
```
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&password={DES}1234567890ABCDEF
```
3. 在代码中获取连接时,Druid连接池会自动解密密码并连接数据库。
需要注意的是,由于Druid连接池的加密方式是DES加密,存在被破解的风险。因此,建议不要将加密密钥和向量硬编码到代码中,而是通过配置文件或其他安全方式进行管理。
相关问题
druid连接池 基于连接 还是数据库
Druid连接池既基于连接,又基于数据库。
首先,Druid连接池是一个数据库连接池,它提供了对数据库连接的管理功能,可以有效地管理和复用数据库连接,提高数据库操作的性能和效率。连接池是为了解决数据库连接成本高、资源浪费和性能下降等问题,通过事先创建并管理一定数量的数据库连接,使得应用程序能够从连接池中获取可用的连接,从而减少创建和关闭连接的开销。
基于连接,意味着Druid连接池的主要目的是为了管理和复用数据库连接。它通过维护连接池来提供可用的连接对象,连接池大小可以根据实际需求进行设置,通过配置参数可以控制池中的最大连接数、最小连接数以及连接的创建和销毁等行为。
基于数据库,意味着Druid连接池还提供了一系列与数据库相关的功能。它支持数据库的连接、查询、事务等操作,可以与多种数据库进行交互,如MySQL、Oracle、SQL Server等。同时,Druid连接池还提供了丰富的监控和统计功能,可以方便地监控数据库连接的使用情况、性能指标和错误信息等。
总结来说,Druid连接池是一个基于连接的数据库连接池,它通过连接池的管理功能来提供可用的数据库连接,并提供与数据库相关的功能和监控统计功能,以提高数据库操作的效率和性能。
Druid连接池和MySQL数据库
Druid连接池是一个高效、可靠的数据库连接池。它支持多种数据库,包括MySQL。使用Druid连接池可以大大提高应用程序的数据库访问性能。
要使用Druid连接池连接MySQL数据库,需要在项目中引入Druid和MySQL的依赖包。然后,在配置文件中配置Druid连接池的相关参数,包括数据库连接URL、用户名、密码、驱动类等。具体的配置方式可以参考Druid官方文档。
下面是一个简单的配置示例:
```
# 数据库连接池配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 连接池配置
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.max-wait=60000
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
spring.datasource.druid.filters=stat,wall,log4j
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
```
配置好之后,就可以在代码中通过Druid连接池获取数据库连接,并执行SQL语句了。例如:
```
// 获取数据库连接
Connection conn = dataSource.getConnection();
// 执行SQL语句
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user");
while (rs.next()) {
System.out.println(rs.getString("name"));
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
```
需要注意的是,使用完数据库连接后一定要及时关闭连接,释放资源,否则会造成连接泄漏和系统资源浪费。