【Spring】基于c3p0连接池,实现数据库加解密连接MySQL数据库
2017-04-12 15:30
477 查看
1、spring连接数据库的xml设置如下:
2、加解密类:
3、db.properties文件设置:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="properties"> <bean class="com.asiainfo.yuntie.util.DatasourcePropertiesFactory" factory-method="getProperties"> <constructor-arg type="java.lang.String"> <value>${jdbc.password}</value> </constructor-arg> </bean> </property> <property name="driverClass" value="${jdbc.driverClassName}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <!-- c3p0连接池的私有属性 --> <property name="maxPoolSize" value="30"/> <property name="minPoolSize" value="10"/> <!-- 关闭连接后不自动commit --> <property name="autoCommitOnClose" value="false"/> <!-- 获取连接超时时间 --> <property name="checkoutTimeout" value="1000"/> <!-- 当获取连接失败重试次数 --> <property name="acquireRetryAttempts" value="2"/> <!--每5小时检查所有连接池中的空闲连接。防止mysql wait_timeout(默认的为8小时) --> <property name="idleConnectionTestPeriod" value="18000"/> </bean>
(1)解密类的完全限定名; (2)解密方法; (3)properties文件中对应的key; 余下设置针对不同需求自己定制即可。
2、加解密类:
public class DatasourcePropertiesFactory { private static final String PROP_PASSWORD = "password"; private static final Log logger = LogFactory.getLog(DatasourcePropertiesFactory.class); /** * * @Title: getProperties * @Description: 获取数据库密码 * @param: @param password * @param: @return * @param: @throws Exception * @return: Properties * @author tanglei * @throws */ public static Properties getProperties(String password) throws Exception { Properties properties = new Properties(); try { //解密密码 properties.setProperty(PROP_PASSWORD, EncryptAndDecrypt.Decrypt(password)); } catch (Exception e) { logger.error("DatasourcePropertiesFactory getProperties is error!", e); } return properties; } }
这里的 EncryptAndDecrypt.Decrypt(password) 就是我所用的加解密方法,由于安全问题这里就不公开这个类里面的具体方法,找一个或者自己写一个都可以,只要保证可以正常加解密即可。
3、db.properties文件设置:
相关文章推荐
- 二、spring Boot构建的Web应用中,基于MySQL数据库的几种数据库连接方式进行介绍
- ASP.NET下基于WebService实现CrystalReport与数据库的连接
- 基于Mysql Connector(C++)的数据库连接池的实现
- 基于java实现mongodb的数据库连接池
- Spring4.1使用c3p0加载配置文件连接数据库,Access denied for user 'root'@'localhost' 错误!
- 数据库连接池的使用(C3P0实现多数据源的数据库连接池)
- PHP连接MySQL数据库及以表格输出数据库数据的实现
- 基于MysqlConnector/C++的数据库连接池的实现
- Spring连接数据库的方式1:利用Spring实现bean属性setter方式注入
- 基于MysqlConnector/C++的数据库连接池的实现
- Spring中数据库连接池的三种配置(dbcp,c3p0,proxool)(转载)
- 实现基于WebService上的CrystalReport与数据库连接
- 使用连接池的方式连接数据库:使用DBUtil连接MYSQL数据库
- 通过动态代理(Proxy)实现的数据库连接池的创建连接与归还链接的操作的简单的实现流程
- ASP.NET下基于WebService实现CrystalReport与数据库的连接
- 实现Spring连接数据库
- C3p0连接池 连接数据库的通用类及测试类
- 基于微软解决方案的负载测试实现-知识库1____(转)理解.NET中的数据库连接池
- PHP连接MySQL数据库,实现将数据库表中的信息显示在网页上
- spring c3p0连接数据库异常