jdbc连接池与依赖注入

tgabmvqs  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(405)

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

ConnectionPoolDataSource source = new ConnectionPoolDataSource(); //Stands for any CP pool object

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

如您所见,名为“source”的变量引用具有特定类型的对象。对于c3po,它是combopooleddatasource。
我想做的是通过springioc注入能够连接池的对象。所以我需要一些接口。问题是,datasource接口只有两种方法来获取实际连接。简单使用:

DataSource source = SomeIocContainer.getObject("DataSource");

我不能

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

有什么解决办法吗?

wfveoks0

wfveoks01#

您不必在应用程序代码中处理数据库访问凭据。这个 DataSource 配置了容器,或者 ApplicationContext 或者javaee应用服务器。连接池也通过容器配置。从文档中的简单示例开始,并仔细扩展这些示例。
我建议您熟悉spring(spring3jdbc文档)和javaee(javaee6教程)的概念。
祝你好运!

nimxete2

nimxete22#

在应用程序上下文(xml)中:

<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>

然后可以将数据源注入到某个dao中:

@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...
}
swvgeqrz

swvgeqrz3#

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

<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

相关问题