JDBC (dbcp,c3p0数据源)转weblogic JNDI数据源
转变原因:避免在配置文件中出现数据库的链接信息(用户名、密码等)
转变过程:
1 在weblogic控制台建一个连接池和数据源,并互相关联
2 在spring配置文件中applicationContext.xml文件中加入如下代码:
<bean id="crmdatasource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>ODSCRM< alue><!--数据源名称-->
</property>
<!-- 如果你不想使用 'java:comp/env/'前缀的话请设置下面的值为true, 默认值为false
<property name="resourceRef">
<value>true</value>
</property>
-->
<property name="jndiEnvironment">
<props>
<!-- The value of Context.PROVIDER_URL -->
<prop key="java.naming.provider.url">
t3://localhost:7001
</prop>
<prop key="java.naming.factory.initial">
weblogic.jndi.WLInitialContextFactory
</prop>
</props>
</property>
</bean>
3 在使用数据源时有两种方式
a 在需要连接数据库的类中直接获取datasource 然后时候datasource.getConnection()方法获取连接 后续操作就和普通JDBC一样,如果原代码使用的是普通JDBC
操作数据库方式,那么这种修改方式改动最小
b 增加DAO层,可以继承JdbcDaoSupport(getJdbcTemplate()),HibernateDaoSupport(getHibernateTemplate()),SqlMapClientDaoSupport(getSqlMapClientTemplate()),
最后将dao注入到具体的操作类中
------容易出现侧问题:
1无法注入,无论在注入datasource还是dao时都为null
2在spring配置文件中加入如下代码会报错,去掉反而正常
<!-- 如果你不想使用 'java:comp/env/'前缀的话请设置下面的值为true, 默认值为false
<property name="resourceRef">
<value>true</value>
</property>
-->
分享到:
相关推荐
### Spring 数据源配置详解:DBCP、C3P0与JNDI #### 一、引言 在Java企业级应用开发中,数据库连接管理是一个关键环节,它直接影响到应用程序的性能与稳定性。Spring框架提供了丰富的数据访问抽象层,使得开发者...
- 使用连接池管理数据源,如HikariCP、C3P0或Apache DBCP,以优化性能和资源使用。 - 配置合理的连接超时和验证查询,确保数据库连接的健康状态。 - 在生产环境中,数据库连接信息应存储在安全的地方,避免泄露。...
2. **C3P0**:C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,提供了比DBCP更强大的功能,例如连接测试、空闲连接检测等。 3. **HikariCP**:HikariCP是一个高性能的数据源,它以最小的内存占用和最快的...
3. **连接池**: 数据源通常会集成连接池技术,如C3P0、HikariCP、Apache DBCP、Druid等。连接池预先创建并管理一组数据库连接,当应用程序需要时可以从池中获取,使用完毕后归还,从而提高了数据库连接的复用率,...
4. **连接池**:在EJB应用中,数据源通常与连接池一起使用,如C3P0、HikariCP或Apache DBCP。连接池管理数据库连接的创建、分配和回收,提高性能并减少资源浪费。 5. **持久化配置**:EJB常与Java Persistence API ...
此外,还可以使用第三方库如C3P0、Apache DBCP等来实现连接池,这些库提供了更高级的特性,如自动回收连接、超时控制等,以进一步优化数据库性能。 总结,配置Struts的数据源涉及到Java EE的JNDI服务、应用服务器的...
例如,Apache的Commons DBCP和C3P0都是流行的数据源实现。 3. JNDI与应用服务器:在企业级应用中,数据源通常通过JNDI在应用服务器(如Tomcat、JBoss、WebLogic等)中注册。这样,应用可以通过JNDI查找并获取数据源...
JNDI数据源在服务器启动时初始化,无需额外引入jar包。 - **C3P0**: 需要引入`c3p0-0.9.x.jar`,使用`com.mchange.v2.c3p0.ComboPooledDataSource`类来创建数据源。C3P0提供了连接测试、自动回收、连接池大小...
在实际开发中,为了提高代码的可维护性和安全性,建议使用预编译的`PreparedStatement`和连接池,例如Apache的DBCP或C3P0。 总结来说,Java JDBC连接数据库涉及到了数据库驱动的选择、连接步骤、数据源配置以及路径...
在大型企业级应用中,通常会采用连接池技术,如C3P0、Apache DBCP或HikariCP,以管理和复用数据库连接,提高系统性能和稳定性。同时,为了适应高并发场景,还应考虑事务管理、数据一致性以及错误恢复策略。 总的来...
- 数据源(DataSource):Oracle JDBC驱动支持JNDI查找的数据源,这样可以在应用服务器如Tomcat或WebLogic中配置数据源,然后由应用程序通过名称查找,方便管理和共享数据库连接。 - 连接池:为了提高性能和资源...
- **JNDI**(Java Naming and Directory Interface):由Web服务器(如Tomcat、WebLogic、WebSphere)管理数据源,不需要额外引入jar包,直接实现`javax.sql.DataSource`接口。 - **C3P0**:依赖`c3p0-0.9.x.jar`...
默认的 Hibernate 连接池功能有限,推荐使用成熟的连接池实现,如 C3P0、Druid 或者应用服务器自身的连接池(如 Tomcat 的 DBCP、WebLogic)。配置时,需要取消 Hibernate 内置连接池的相关设置,并根据所选连接池的...
8. 使用连接池:为了提高性能和资源利用率,大多数企业级应用会使用连接池(如C3P0、HikariCP或Apache DBCP),它们能够管理数据库连接,避免频繁地创建和关闭连接。 9. Maven或Gradle依赖管理:现代的Java项目通常...
例如,C3P0、HikariCP、Apache DBCP等都是常用的Java JDBC连接池实现。 6. **数据源配置**: 在Java EE环境中,数据源通常在应用服务器(如Tomcat、WebLogic等)中配置,提供对数据库的统一访问。开发者只需通过JNDI...
1. **连接池**:为了提高性能和资源利用,可以使用连接池(如C3P0、HikariCP或Apache DBCP),它们管理数据库连接的创建、分配和释放。 2. **批处理**:对于批量插入或更新操作,使用JDBC的批处理功能可以显著提高...
- **配置**:除了JNDI方式外,还可以在应用中直接配置DataSource,例如使用Apache DBCP或C3P0等第三方连接池库,通过编程方式创建和管理DataSource。 4. **数据库连接管理**: DataSource还负责处理连接的生命...