首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDBC连接池与依赖注入

JDBC连接池与依赖注入
EN

Stack Overflow用户
提问于 2013-06-06 16:49:22
回答 3查看 2.1K关注 0票数 0

我对Java和连接池非常陌生。我已经尝试了几个池,每个池都有以下问题:

代码语言:javascript
复制
ConnectionPoolDataSource source = new ConnectionPoolDataSource(); //Stands for any CP pool object

source.setUser("blabla");
source.setAnything("blabla";

如您所见,名为"source“的变量引用具有特定类型的对象。例如:对于C3PO,它是ComboPooledDataSource。

我想要做的是通过Spring IOC注入能够连接池的对象。所以我需要一些接口。问题是,DataSource interface只有两种方法来获取实际的连接。简单地使用:

代码语言:javascript
复制
DataSource source = SomeIocContainer.getObject("DataSource");

我做不到

代码语言:javascript
复制
source.setUser("blabla");
source.setOtherStuff("blabla");

对此有什么解决方案吗?

EN

回答 3

Stack Overflow用户

发布于 2013-06-06 17:00:24

在您的应用程序上下文(Xml)中:

代码语言:javascript
复制
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

然后您可以将dataSource注入到某个DAO中:

代码语言:javascript
复制
@Repository
public class JdbcCorporateEventDao implements CorporateEventDao {

    private JdbcTemplate jdbcTemplate;

    @Autowired
    public void setDataSource(DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
    }

    // JDBC-backed implementations of the methods on the CorporateEventDao follow...
}
票数 0
EN

Stack Overflow用户

发布于 2013-06-06 17:00:53

您不必在应用程序代码中处理数据库访问凭据。使用容器配置DataSource,可以是Spring ApplicationContext,也可以是Java应用服务器。连接池也是使用容器配置的。从文档中的简单示例开始,仔细扩展这些示例。

我建议您熟悉Spring (Spring 3 JDBC Documentation)和Java (Java EE 6 tutorial)的概念。

祝好运!

票数 0
EN

Stack Overflow用户

发布于 2013-06-06 17:01:11

数据库连接池通常创建具有所有相同属性的连接,因此在池上设置这些属性。与其他属性的连接使用多个池。

连接池的简单Spring配置:

代码语言:javascript
复制
<bean id="springDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-  method="close" >
 <property name="url" value="jdbc:oracle:thin:@localhost:1521:SPRING_TEST" />
 <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
 <property name="username" value="root" />
 <property name="password" value="root" />
 <property name="removeAbandoned" value="true"/>
 <property name="initialSize" value="20" />
 <property name="maxActive" value="30" />
</bean>

来自:http://javarevisited.blogspot.co.uk/2012/06/jdbc-database-connection-pool-in-spring.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16957614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档