如何使下面的jdbc连接配置连接池

Posted

技术标签:

【中文标题】如何使下面的jdbc连接配置连接池【英文标题】:how to make below jdbc connection configuration connection pooling 【发布时间】:2015-12-13 00:29:09 【问题描述】:

我有一个 Web 应用程序,我的应用程序连接到数据库,每次访问我的 Web 应用程序时我都需要连接到数据库,所以我想通过缓存或池连接来减少时间

下面是我的数据库配置文件 xml文件:

<bean id="dataSource" 
         class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
   <property name="url" value="jdbc:mysql://localhost:3306/"/>
   <property name="username" value="root"/>
   <property name="password" value="password"/>
</bean>

【问题讨论】:

Spring 示例 JDBC 数据库连接池 javarevisited.blogspot.in/2012/06/… 【参考方案1】:

请为您的应用程序使用HikariCP,Java 世界中可用的最佳和非常快速的连接池,配置应如下所示。

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"    >
        <constructor-arg>
            <bean class="com.zaxxer.hikari.HikariConfig">
                <property name="jdbcUrl"  value="jdbc:mysql://localhost:3306/" />
                <property name="maximumPoolSize" value="20" />
                <property name="username" value="root" />
                <property name="password" value="root" />
                <property name="poolName" value="my-pool1" />
            </bean>
        </constructor-arg>
</bean>

或者您也可以进行编程配置。

HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/simpsons");
config.setUsername("bart");
config.setPassword("51mp50n");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");

HikariDataSource ds = new HikariDataSource(config);

【讨论】:

【参考方案2】:

您可以如下使用,只需更改您的数据库驱动程序和url设置

<bean id="springDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" >
   <property name="url" value="jdbc:oracle:thin:@localhost:1521:Employee" />
   <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
   <property name="username" value="scott" />
   <property name="password" value="tiger" />
   <property name="removeAbandoned" value="true"/>
   <property name="initialSize" value="20" />
   <property name="maxActive" value="30" />
</bean>

【讨论】:

【参考方案3】:

你应该使用SingleConnectionDataSource作为数据源

<bean id="dataSource" 
         class="org.springframework.jdbc.datasource.SingleConnectionDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
   <property name="url" value="jdbc:mysql://localhost:3306/"/>
   <property name="username" value="root"/>
   <property name="password" value="password"/>
</bean>

【讨论】:

但我希望它是多个连接

以上是关于如何使下面的jdbc连接配置连接池的主要内容,如果未能解决你的问题,请参考以下文章

如何配置mysql数据库连接池

mongodb如何管理连接的?有必要实现连接池吗

如何在 Spring/Tomcat 中完全禁用 JDBC 连接池?

JDBC - 开源数据库连接池

JDBC连接池设置无法在Glassfish5上运行

JDBC从连接池获取连接