问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Druid连接池自定义数据库密码加解密怎么实现

发布网友 发布时间:2022-04-23 15:52

我来回答

1个回答

热心网友 时间:2022-04-26 23:23

Druid的功能

1、替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。

2、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。

3、数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。

4、SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。

5、扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。

其中第三条说出了本博客的一个目的,详细过程如下:

1、首先配置Druid的数据库连接池

<!--数据源加密操作-->
<bean id="dbPasswordCallback" class="com.xuliugen.db.config.DBPasswordCallback" lazy-init="true"/>

<bean id="statFilter" class="com.alibaba.druid.filter.stat.StatFilter" lazy-init="true">
<property name="logSlowSql" value="true"/>
<property name="mergeSql" value="true"/>
</bean>
<!
-- 数据库连接 -->
<bean id="readDataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close" init-method="init" lazy-init="true">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url1}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<!-- 初始化连接大小 -->
<property name="initialSize" value="${initialSize}"/>
<!-- 连接池最大数量 -->
<property name="maxActive" value="${maxActive}"/>
<!-- 连接池最小空闲 -->
<property name="minIdle" value="${minIdle}"/>
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="${maxWait}"/>
<!-- -->
<property name="defaultReadOnly" value="true"/>
<property name="proxyFilters">
<list>
<ref bean="statFilter"/>
</list>
</property>
<property name="filters" value="${druid.filters}"/>
<property name="connectionProperties" value="password=${password}"/>
<property name="passwordCallback" ref="dbPasswordCallback"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnBorrow" value="false"/>
<property name="testOnReturn" value="false"/>
<property name="validationQuery" value="SELECT 'x'"/>
<property name="timeBetweenLogStatsMillis" value="60000"/>
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}"/>
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}"/>
</bean>

其中要注意的是:
<bean id="dbPasswordCallback" class="com.xuliugen.db.config.DBPasswordCallback" lazy-init="true"/>

<property name="passwordCallback" ref="dbPasswordCallback"/>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 烙肉饼面黏糊怎么回事 druid数据库连接池报用户sa登陆失败错误 肉饼面怎么和吃起来软 连接池druid连接SqlServer 2008问题 肉饼的面怎么做? druid连接池 SPRING怎样实现配置数据源 烙馅饼的面应该怎样和才好 druid数据库连接池用不用关闭 怎么用druid连接池连接mysql 肉饼的面怎么和比较软 为什么说Druid是“最好的数据库连接池” 做馅饼的面怎么和才能又软又蓬松 做馅饼时怎么和面才能又软又蓬松? 烙馅饼的面怎么和松软 无人售货机微信接完账的账单是什么? 梦见我的脚指头被老鼠咬了流了好多血 梦见老鼠把脚咬破了流血最后跑到我怀里来了 梦见老鼠咬我脚踝,咬得我很疼,我使很大的劲才把老鼠拽下来,我的腿咬出血啦 我是刚刚怀孕,昨天我梦见自己被老鼠咬伤左脚,留了好多血,很怕呀! 刚割下生猪蹄怎样处理? 小米手机昨天的粤康码怎么弄 有没有人遇到过用druid做连接池一段时间不用就特别慢的问题 北京人怎么申请粤康码 Druid 连接池,重启Mysql数据库后,Druid会自动重新连接不,该在哪配置... 怎么在接龙小管家弄那个粤康码 怎么获取druid数据连接池配置信息 druid连接池可以连接oracle吗 渝康码怎么转粤康码 druid 连接数据库超时怎么配置 外国人护照怎么办粤康码 粤康码怎么操作? druid数据库连接池什么时候释放 粤康码怎么设置30天免登录? 香港身份证怎么弄粤康码 美国护照怎么申请粤康码- 问一问 一只股票放量下跌,但换手率不高说明什么? 股票放量换手率不高是怎么回事? 话说无量无利空股价大幅下跌,换手率极低,是什么情况 大盘处于下跌趋势,个股处于上升趋势,但换手率非常的低,说明了什么?此时能买入吗? 低位横盘破位放量下跌,换手率低于3