如何在jdbc连接下面建立连接池

时间:2015-09-16 12:12:09

标签: java spring jdbc

我有一个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>

3 个答案:

答案 0 :(得分:3)

请使用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);

答案 1 :(得分:2)

您可以按如下方式使用,只需更改数据库驱动程序和网址设置

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

答案 2 :(得分:0)

您应该使用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>