- 浏览: 495353 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (247)
- java框架-struts2 (11)
- java框架-spring (6)
- 开发工具-myeclipse (8)
- 技术标准-webservice (1)
- 技术标准-opensaml2 (1)
- 开发语言-java (13)
- 开发语言-asp (4)
- 数据库-oracle (25)
- 数据库-mysql (4)
- 前端开发-css (15)
- 前端开发-javascript (34)
- 图片处理 (7)
- 事务处理 (1)
- SVN (2)
- 系统-linux (41)
- 系统-solaris (13)
- 系统-windows (8)
- web容器-glassfish (5)
- 单点登录-Shibboleth (0)
- 其他技术 (18)
- 技术无关 (6)
- 开发语言-jsp (2)
- 前端开发-html (1)
- LDAP相关 (11)
- 单点登录-cas (0)
- php (0)
- 门户-uportal (0)
- 单点登录-opensso (1)
- json (1)
- Android (2)
最新评论
-
wzwahl36:
http://www.atool.org/ico.php这个生 ...
Photoshop制作Favicon.ico图标(转载) -
wgimperial:
帮我解决了问题,谢谢LZ
如何让 href 失效(转) -
Finishx:
[color=olive][/color][size=medi ...
iframe跨域(转) -
q79969786:
不能删,上了这个workspace就是空的了
java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContainer -
hw1287789687:
showrev
在SOLARIS下如何查看版本号
一、cn.com.encrypt.java
package cn.com.encrypt; import java.io.ByteArrayOutputStream; import java.util.Properties; import javax.crypto.Cipher; import org.springframework.beans.factory.FactoryBean; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class DBEncrypt implements FactoryBean { private Properties properties; public Object getObject() throws Exception { return getProperties(); } public Class getObjectType() { return java.util.Properties.class; } public boolean isSingleton() { return true; } public Properties getProperties() { return properties; } public void setProperties(Properties inProperties) { this.properties = inProperties; String originalUsername = properties.getProperty("user"); String originalPassword = properties.getProperty("password"); if (originalUsername != null) { String newUsername = deEncryptUsername(originalUsername); properties.put("user", newUsername); } if (originalPassword != null) { String newPassword = deEncryptPassword(originalPassword); properties.put("password", newPassword); } } private String deEncryptUsername(String originalUsername) { return dCode(originalUsername.getBytes()); } private String deEncryptPassword(String originalPassword) { return dCode(originalPassword.getBytes()); } public String eCode(String needEncrypt) { byte result[] = null; try { Cipher enCipher = Cipher.getInstance("DES"); javax.crypto.SecretKey key = Key.loadKey(); enCipher.init(1, key); result = enCipher.doFinal(needEncrypt.getBytes()); BASE64Encoder b = new BASE64Encoder(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); b.encode(result, bos); result = bos.toByteArray(); } catch (Exception e) { throw new IllegalStateException( "System doesn't support DES algorithm."); } return new String(result); } public String dCode(byte result[]) { String s = null; try { Cipher deCipher = Cipher.getInstance("DES"); deCipher.init(2, Key.loadKey()); BASE64Decoder d = new BASE64Decoder(); result = d.decodeBuffer(new String(result)); byte strByte[] = deCipher.doFinal(result); s = new String(strByte); } catch (Exception e) { throw new IllegalStateException( "System doesn't support DES algorithm."); } return s; } public static void main(String[] args) { String s = "test"; DBEncrypt p = new DBEncrypt(); String afterE = p.eCode(s); System.out.println("after:"+afterE);//这里是加密后的字符 System.out.println("before:"+p.dCode(afterE.getBytes())); } }
二、cn.com.encrypt.Key.java
package cn.com.encrypt; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import sun.misc.BASE64Decoder; public class Key { private static String encryptKey = "7EV/Zzutjzg="; public Key() { } public static SecretKey loadKey() throws Exception { BASE64Decoder d = new BASE64Decoder(); byte b[] = d.decodeBuffer(encryptKey); DESKeySpec dks = new DESKeySpec(b); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); return keyFactory.generateSecret(dks); } }
三、cn.com.encrypt.PropertiesEncryptFactoryBean.java
package cn.com.encrypt; import java.util.Properties; import org.springframework.beans.factory.FactoryBean; public class PropertiesEncryptFactoryBean implements FactoryBean { private Properties properties; public Object getObject() throws Exception { return getProperties(); } public Class getObjectType() { return java.util.Properties.class; } public boolean isSingleton() { return true; } public Properties getProperties() { return properties; } public void setProperties(Properties inProperties) { this.properties = inProperties; String originalUsername = properties.getProperty("user"); String originalPassword = properties.getProperty("password"); if (originalUsername != null) { String newUsername = deEncryptUsername(originalUsername); properties.put("user", newUsername); } if (originalPassword != null) { String newPassword = deEncryptPassword(originalPassword); properties.put("password", newPassword); } } private String deEncryptUsername(String originalUsername) { return deEncryptString(originalUsername); } private String deEncryptPassword(String originalPassword) { return deEncryptString(originalPassword); } private String deEncryptString(String originalString) { return new DBEncrypt().dCode(originalString.getBytes()); } }
四、config.properties
CHECK_ST_ORL_URL=jdbc:oracle:thin:@127.0.0.1:1521:rac
CHECK_ST_ORL_USER=qBEWE7vGhBs=
CHECK_ST_ORL_PASSWD=qBEWE7vGhBs=
CHECK_ST_ORL_driverClassName=oracle.jdbc.driver.OracleDriver
五、applicationContext.xml
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>/WEB-INF/classes/config.properties</value> </list> </property> </bean> <bean id="dataSourceOracle" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="automaticTestTable" value="CONNECTION_TEST" /> <property name="testConnectionOnCheckout" value="true" /> <property name="acquireRetryAttempts" value="5" /> <property name="driverClass"> <value>${CHECK_ST_ORL_driverClassName}</value> </property> <property name="jdbcUrl"> <value>${CHECK_ST_ORL_URL}</value> </property> <property name="properties" ref="dataSourceProperties"/> <property name="minPoolSize"> <value>30</value> </property> <property name="maxPoolSize"> <value>100</value> </property> <property name="initialPoolSize"> <value>30</value> </property> <property name="maxConnectionAge"> <value>1800</value> </property> <property name="maxIdleTime"> <value>1800</value> </property> <property name="maxIdleTimeExcessConnections"> <value>300</value> </property> <property name="maxStatements"> <value>0</value> </property> <property name="testConnectionOnCheckin"> <value>false</value> </property> <property name="idleConnectionTestPeriod"> <value>900</value> </property> <property name="checkoutTimeout"> <value>1000</value> </property> </bean> <bean id="dataSourceProperties" class="cn.com.encrypt.PropertiesEncryptFactoryBean"> <property name="properties"> <props> <prop key="user">${CHECK_ST_ORL_USER}</prop> <prop key="password">${CHECK_ST_ORL_PASSWD}</prop> </props> </property> </bean>
评论
2 楼
reference
2012-05-09
每次启到这块就卡起了。
JdbcTransactionObjectSupport - JDBC 3.0 Savepoint class is available
AbstractPoolBackedDataSource - Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay ->
后面就抛空指针。
JdbcTransactionObjectSupport - JDBC 3.0 Savepoint class is available
AbstractPoolBackedDataSource - Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay ->
后面就抛空指针。
1 楼
reference
2012-05-09
请问一下,你这个可以用嘛。我去掉,你加密解密那块,不能用啊。
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
是包的版本不同吗?
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
是包的版本不同吗?
发表评论
-
Oracle连接相关
2013-10-14 14:03 645查看当前的连接数: select count(*) fro ... -
查询oracle某用户下所有的表
2013-09-27 14:31 734select t.TABLE_NAME from dba_t ... -
查询修改ORACLE的server、客户端和导出dmp文件的字符集编码方式[转]
2013-07-29 16:13 926原文:http://hi.baidu.com/anshang ... -
java中c3p0数据库重启后自动重连配置
2012-08-21 13:33 1704一、几个参数详解 (1)breakAfterAcquireF ... -
在oracle里自定义一个字符串的聚集函数
2012-08-01 11:18 965一、定义type、 type body、function c ... -
查看oracle数据库版本命令
2012-03-15 13:59 1016SQL> select banner from sys ... -
oracle进行分组后,取出每组的前几条数据
2011-12-15 11:51 2585SELECT * FROM (SELECT 分组的字段名, ... -
jdbc连接oracle实例
2010-12-31 16:51 2806import java.sql.Connection; im ... -
to_date to_char 示例sql语句
2010-09-28 16:17 1342INSERT INTO base_userandorgani ... -
oracle查询一张表的所有字段及字段类型
2010-09-28 16:10 2792select t.COLUMN_NAME,t.DATA_TYP ... -
procedure实例2
2010-09-28 15:50 953create or replace procedure pro ... -
procedure实例1
2010-09-28 15:47 776create or replace procedure d ... -
oracle的显式授权和隐式授权(转)
2010-09-19 11:21 3034原文:http://www.blogjava.net/haha ... -
查看oracle监听器状态
2010-09-17 16:24 1624lsnrctl status -
oarcle安装Check kernel parameters(转)
2010-05-28 11:00 2711原文:http://shaoxi88888.blog.163. ... -
查看Oracle字符集及如何修改字符集(转)
2010-05-21 09:34 5849一、什么是oracle字符集 ... -
PL/SQL Developer如何连接数据库
2010-05-02 16:12 1866首先应该是先安装oracle客户端,后安装pl/sql dev ... -
在普通web项目的servlet和filter中获取spring上下文
2010-05-02 16:01 2445之前一直是在web项目中使用struts2然后通过plugin ... -
Oracle中如何获取汉字的拼音?使用函数。
2010-04-12 11:13 1358(1)创建如下的函数: CREATE OR REPLA ... -
Oracle job 管理
2010-03-29 15:21 826SQL> variable job1 number; ...
相关推荐
这个配置将创建一个名为 `dataSource` 的数据源,并使用 C3P0 连接池。 小结 在本文中,我们详细介绍了如何在 Spring Boot 应用程序中使用 C3P0 数据库连接池。C3P0 提供了高性能、可靠性和可扩展性,解决了数据库...
对于c3p0,你需要配置数据源,设置数据库连接参数,如URL、用户名、密码,并定义连接池的配置,如最大连接数、最小连接数、获取连接超时时间等。配置完成后,c3p0会自动管理数据库连接,提高应用的并发处理能力。 ...
例如,使用 c3p0 数据源的配置: ```xml scope="Shareable" type="com.mchange.v2.c3p0.ComboPooledDataSource" factory="org.apache.naming.factory.BeanFactory" user="pual_dev" password="1" ...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。而MySQL 8.0驱动则是MySQL数据库与Java应用程序之间的桥梁,允许程序通过JDBC接口与MySQL进行通信。 C3P0连接池的核心...
Spring提供了多种数据源实现类,包括基于Apache DBCP和C3P0的实现。开发者可以根据需要选择合适的数据源实现类,并使用Spring的依赖注入机制将其集成到应用程序中。 二、数据源配置文件加密 在Spring应用程序中,...
在后端,项目采用了C3P0数据源来管理数据库连接。C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,提供了更高级的性能和配置选项。通过C3P0,项目可以有效地管理和复用数据库连接,提高系统资源利用率,避免...
再者,C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC2规范和JDBC3规范。在自动登录场景中,频繁的数据库交互可能会导致大量的数据库连接创建和关闭,这将消耗大量资源。C3P0连接池可以管理和复用...
c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Web应用程序中,尤其是在高并发场景下,数据库连接的创建和关闭是非常耗时的。c3p0通过管理数据库连接,实现连接的复用...
在本教程中,我们将深入探讨如何使用ESP32-C3微控制器通过MQTT协议连接到ONENET云平台,以实现传感器数据的上报以及接收云端指令控制设备。ESP32-C3是Espressif Systems公司推出的一款基于RISC-V架构的物联网芯片,...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,可以配合各种JDBC驱动程序使用,提高数据库连接的效率和资源利用率。C3P0提供了一套灵活的配置选项,用于管理和优化数据库连接的生命周期,例如自动检测失效...
- Servlet接收到请求,从JavaBean中提取数据,执行验证操作(如检查用户名是否已存在、密码是否符合规则等)。 - 如果验证通过,Servlet将用户信息保存到数据库,并生成成功消息;如果验证失败,返回错误信息。 5...
1. 数据库连接池的初始化:可能使用了像C3P0、DBCP或者HikariCP这样的连接池库,初始化连接池配置。 2. 获取数据库连接:提供静态方法供其他类调用,获取数据库连接。 3. 执行SQL语句:包括查询、插入、更新和删除...
数据源是连接数据库的关键,本例中使用了C3P0连接池,因为它提供了更丰富的配置选项。 4. **Hibernate配置**:`sessionFactory`配置包括数据源、JDBC驱动、URL、用户名和密码。此外,还需要设置连接池的大小(如...
5. **安全性**:数据连接的安全性不容忽视,涉及用户名、密码的加密存储,防止SQL注入攻击,以及使用预编译语句(PreparedStatement)来提升安全性和效率。 综上所述,"dbconnection2.0" 提供了一个全面的数据库...
5. **C3P0连接池**:C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,提供了性能优化的功能。在本项目中,C3P0用于管理数据库连接,提高数据库操作的效率,避免频繁创建和关闭连接,从而提升系统性能。 6. ...
3. **数据源**:在Web应用中,数据源通常是指连接数据库的资源管理器,如Apache DBCP或C3P0,它们提供数据库连接的管理和池化,确保高效、安全地访问数据库。 **知识点详解:** 1. **MVC设计模式**: - **模型...
配置通常包括数据源名称(DataSource)、驱动类名、URL、用户名和密码等。例如,使用HikariCP的配置可能如下: ```xml type="com.zaxxer.hikari.HikariDataSource" driverClassName="com.mysql.jdbc.Driver" url...
- **连接池**:为了提高性能和资源管理,通常使用连接池(如C3P0、Apache DBCP或HikariCP)来管理数据库连接。 5. **安全机制**: - **CSRF Token**:防止跨站请求伪造攻击,每个表单提交时应包含一个唯一的Token...
确保数据源安全至关重要,包括加密敏感信息(如数据库密码)、限制连接权限、定期更改凭证、以及监控和审计数据源的使用情况。 7. 微服务架构中的数据源: 在微服务架构中,每个服务可能有自己的数据源,这增加了...
不过,为了提高效率和可维护性,建议使用更现代的JDBC驱动,如Apache的DBCP或C3P0,以及ORM框架如Hibernate或MyBatis,它们提供了更好的性能和更方便的API。 总的来说,Java连接Access MDB文件涉及到JDBC接口、ODBC...