如何使下面的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连接配置连接池的主要内容,如果未能解决你的问题,请参考以下文章