天天看点

spring创建连接池的几种方式

spring使用连接池有很多种方式,jdbc(不使用连接池),c3p0,dbcp,jndi,下面将分别贴代码介绍这几种:

 1.jdbc方式

   使用的是DriverManagerDataSource,DriverManagerDataSource建立连接是只要有连接就新建一个connection,  根本没有连接池的作用

<code>&lt;bean id=</code><code>"dataSource"</code> <code>class</code><code>=</code><code>"org.springframework.jdbc.datasource.DriverManagerDataSource"</code><code>&gt; </code>

<code>  </code><code>&lt;property name=</code><code>"driverClassName"</code><code>&gt;&lt;value&gt;${jdbc.driverClassName}&lt;/value&gt;&lt;/property&gt; </code>

<code>  </code><code>&lt;property name=</code><code>"url"</code><code>&gt;&lt;value&gt;${jdbc.url}&lt;/value&gt;&lt;/property&gt; </code>

<code>  </code><code>&lt;property name=</code><code>"username"</code><code>&gt;&lt;value&gt;${jdbc.username}&lt;/value&gt;&lt;/property&gt; </code>

<code>  </code><code>&lt;property name=</code><code>"password"</code><code>&gt;&lt;value&gt;${jdbc.password}&lt;/value&gt;&lt;/property&gt; </code>

<code>&lt;/bean&gt;</code>

2.C3P0连接池

   使用的是ComboPooledDataSource

<code>&lt;bean id=</code><code>"dataSource"</code> <code>class</code><code>=</code><code>"com.mchange.v2.c3p0.ComboPooledDataSource"</code>       

<code>        </code><code>destroy-method=</code><code>"close"</code><code>&gt;      </code>

<code>    </code><code>&lt;property name=</code><code>"driverClass"</code> <code>value=</code><code>" oracle.jdbc.driver.OracleDriver "</code><code>/&gt;      </code>

<code>    </code><code>&lt;property name=</code><code>"jdbcUrl"</code> <code>value=</code><code>" jdbc:oracle:thin:@localhost:1521:ora9i "</code><code>/&gt;      </code>

<code>    </code><code>&lt;property name=</code><code>"user"</code> <code>value=</code><code>"admin"</code><code>/&gt;      </code>

<code>    </code><code>&lt;property name=</code><code>"password"</code> <code>value=</code><code>"1234"</code><code>/&gt;      </code>

3.DBCP连接池

使用的是BasicDataSource

<code>&lt;bean id=</code><code>"dataSource"</code> <code>class</code><code>=</code><code>"org.apache.commons.dbcp.BasicDataSource"</code> <code>destroy-method=</code><code>"close"</code><code>&gt;              </code>

<code>    </code><code>&lt;property name=</code><code>"driverClassName"</code> <code>value=</code><code>"oracle.jdbc.driver.OracleDriver"</code> <code>/&gt;             </code>

<code>    </code><code>&lt;property name=</code><code>"url"</code> <code>value=</code><code>"jdbc:oracle:thin:@192.168.24.102:1521:sms"</code> <code>/&gt;             </code>

<code>    </code><code>&lt;property name=</code><code>"userna me"</code> <code>value=</code><code>"test"</code><code>/&gt;             </code>

<code>    </code><code>&lt;property name=</code><code>"password"</code> <code>value=</code><code>"test"</code> <code>/&gt;             </code>

<code>  </code> 

由于spring对C3P0,DBCP连接池有了很好的支持,所以只需要如上的配置,就配置好了相应数据源的连接池。

4.JNDI方式

  使用的是JndiObjectFactoryBean

<code>&lt;bean id=</code><code>"dataSource"</code> <code>class</code><code>=</code><code>"org.springframework.jndi.JndiObjectFactoryBean"</code><code>&gt; </code>

<code> </code><code>&lt;property name=</code><code>"jndiName"</code><code>&gt;&lt;value&gt;java:comp/env/jdbc/roseindiaDB_local&lt;/value&gt;&lt;/property&gt;</code>

这种使用JDNI的方式,同样需要服务器的支持,如在tomcat的context.xml加入相应的代码,具体的可以看前一篇文章的介绍

     本文转自布拉君君 51CTO博客,原文链接:http://blog.51cto.com/5148737/1430423,如需转载请自行联系原作者