spring2 配置文件
<?xml version="1.0"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 数据源配置 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="jdbcUrl" value="jdbc:oracle:thin:@IP:端口:SID" />
<property name="acquireIncrement" value="1"/>
<property name="idleConnectionTestPeriod" value="300"/>
<property name="maxPoolSize" value="5"/>
<property name="minPoolSize" value="1"/>
<property name="initialPoolSize" value="1" />
<property name="numHelperThreads" value="3"/>
<property name="maxIdleTime" value="1200" />
<property name="acquireRetryAttempts" value="2"/>
<property name="preferredTestQuery" value=" select 1 from dual "/>
<property name="testConnectionOnCheckin" value="true"/>
[color=red]<property name="properties" ref="dataSourceProperties"/>[/color]
</bean>
<bean id="dataSourceProperties" class="PropertiesEncryptFactoryBean">
<property name="properties">
<props>
<prop key="user">xxxx加密后</prop>
<prop key="password">xxxxxxx加密后</prop>
</props>
</property>
</bean>
2.PropertiesEncryptFactoryBean(加密类)
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){
StringBuilder newString = new StringBuilder();
for (int i = 0; i < originalString.length(); i++) {
char eachChar= originalString.charAt(i);
char newChar = (char)(eachChar + i);
newString.append(newChar);
}
return newString.toString();
}
}
ComboPooledDataSource的properties属性可被注入user,password
只有user,password两个属性是可配置,其他属性不存也不是取自properties(具体可看C3P0源码)
分享到:
相关推荐
5. **扩展性**:c3p0是模块化的,可以与其他数据源如Oracle UCP、HikariCP等结合使用,或者通过自定义实现来扩展其功能。 在实际使用中,你需要在项目中引入`c3p0-0.9.1.2.jar`这个库文件。这个版本的c3p0是2009年...
C3P0是一个流行的开源JDBC连接池,它提供了数据源和JNDI绑定,遵循JDBC3规范和JDBC2标准扩展。C3P0在诸如Hibernate和Spring这样的知名框架中广泛应用。 首先,使用C3P0数据库连接池需要导入相关的jar包,例如c3p0-...
- 配置 Hibernate:引入 Hibernate 相关依赖,配置 Hibernate 的核心文件(如 `hibernate.cfg.xml`),定义数据源、SessionFactory 等。 - 创建实体类:根据数据库表结构,创建对应的 Java 实体类,使用注解(@...
数据源是连接数据库的关键,本例中使用了C3P0连接池,因为它提供了更丰富的配置选项。 4. **Hibernate配置**:`sessionFactory`配置包括数据源、JDBC驱动、URL、用户名和密码。此外,还需要设置连接池的大小(如...
Spring提供了多种数据源选项,如BasicDataSource或C3P0。 - **3.3 配置SessionFactory**:配置Hibernate SessionFactory,指定Hibernate配置文件的位置以及其他必要的参数。 - **3.4 配置事务**:通过Spring的...
- Servlet接收到请求,从JavaBean中提取数据,执行验证操作(如检查用户名是否已存在、密码是否符合规则等)。 - 如果验证通过,Servlet将用户信息保存到数据库,并生成成功消息;如果验证失败,返回错误信息。 5...
- **连接池**:为了提高性能和资源管理,通常使用连接池(如C3P0、Apache DBCP或HikariCP)来管理数据库连接。 5. **安全机制**: - **CSRF Token**:防止跨站请求伪造攻击,每个表单提交时应包含一个唯一的Token...
8. **性能优化**:为了提升系统性能,可以使用缓存技术(如Spring的Cache Abstraction)、连接池(如Apache DBCP或C3P0)以及合理的数据库设计。此外,还可以通过Struts2的拦截器进行性能监控和优化。 这个"shop...
不过,为了提高效率和可维护性,建议使用更现代的JDBC驱动,如Apache的DBCP或C3P0,以及ORM框架如Hibernate或MyBatis,它们提供了更好的性能和更方便的API。 总的来说,Java连接Access MDB文件涉及到JDBC接口、ODBC...
Spring MVC 是一个强大的Java Web开发框架,用于构建...数据源配置通常使用Apache的DBCP或C3P0,而SessionFactory配置则是为Hibernate提供数据库连接参数,如数据库URL、用户名、密码和驱动类名。 ```xml ...
MyEclipse支持配置连接池,如C3P0、Apache DBCP或HikariCP,这些连接池组件可以帮助管理数据库连接的生命周期。 6. **异常处理和测试用例**:在开发过程中,还应编写测试用例来模拟各种异常情况,如网络中断、超时...
- 配置C3P0连接池,定义数据库连接参数,如驱动类、URL、用户名和密码。 - 配置Hibernate相关属性,如方言、SQL显示、格式化SQL和自动更新数据库结构。 - 使用log4j.properties文件进行日志管理。 6. 事务管理:...
- 数据库连接池如C3P0或Apache DBCP提高数据库连接效率。 5. **安全性**: - 使用HTTPS协议保证数据传输的安全。 - 权限控制:根据用户角色分配不同操作权限,防止未授权访问。 - 数据加密:敏感信息如密码应...
7. **com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar** 和 **c3p0-0.9.1.jar**:C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,为数据库连接提供了自动管理,包括连接创建、测试和回收。 8. **...
在这个项目中,采用C3P0数据库连接池技术,C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。数据库连接池在多用户并发访问数据库时,可以显著提高性能,因为建立和释放...
- `sqlDataSource`: 使用C3P0连接池配置SQL Server的数据源。 - `driverClass`: 数据库驱动类。 - `jdbcUrl`: 数据库URL。 - `user`: 用户名。 - `password`: 密码。 - `autoCommitOnClose`: 自动提交设置。 ...
3. 数据库连接池:如C3P0或Apache DBCP,用于管理和优化数据库连接,提高系统性能。 4. ORM框架:如Hibernate或MyBatis,简化数据库操作,将Java对象与数据库表映射,降低开发难度。 三、系统功能模块 1. 用户管理...
- 配置 SessionFactory,使用 c3p0 作为数据源; - DAO 类继承 HibernateDaoSupport; - 在 Spring 配置文件中配置 SessionFactory; - 测试 SessionFactory 功能; - 管理事务提交与回滚。 #### 二、学习方法 - *...
- C3P0:C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。它提供了一些高级功能,如自动测试连接、连接池的大小控制等,有助于提高数据库资源的利用率。 - DBCP (Apache ...
支持任何第三方的数据库连接池,如 DBCP、C3P0、BoneCP、Druid、HikariCP 等。 ShardingSphere-Proxy ShardingSphere-Proxy 是一个轻量级 Java 框架,在 Java 的 JDBC 层提供额外服务。它使用客户端直连数据库,以...