当前位置:Gxlcms > 数据库问题 > Spring配置数据源的三种方式 (dbcp c3p0 jndi)

Spring配置数据源的三种方式 (dbcp c3p0 jndi)

时间:2021-07-01 10:21:17 帮助过:22人阅读

  • 说明:DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用。   
  • <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">   
  •               <property name="driverClassName"><value>${jdbc.driverClassName}</value></property>   
  •               <property name="url"><value>${jdbc.url}</value></property>   
  •               <property name="username"><value>${jdbc.username}</value></property>   
  •               <property name="password"><value>${jdbc.password}</value></property>   
  •   
  •        </bean>   
  • 2.使用org.apache.commons.dbcp.BasicDataSource   
  • 说明:这是一种推荐说明的数据源配置方式,它真正使用了连接池技术   
  • <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">   
  •               <property name="driverClassName">   
  •                      <value>oracle.jdbc.driver.OracleDriver</value>   
  •               </property>   
  •               <property name="url">   
  •                      <value>jdbc:oracle:thin:@localhost:1521:orcl</value>   
  •               </property>   
  •               <property name="username">   
  •                      <value>test</value>   
  •               </property>   
  •               <property name="password">   
  •                      <value>test</value>   
  •               </property>   
  •               <property name="maxActive">   
  •                      <value>255</value>   
  •               </property>   
  •               <property name="maxIdle">   
  •                      <value>2</value>   
  •               </property>   
  •               <property name="maxWait">   
  •                      <value>120000</value>   
  •               </property>   
  •        </bean>   
  • 3.使用org.springframework.jndi.JndiObjectFactoryBean   
  • 说明:JndiObjectFactoryBean 能够通过JNDI获取DataSource   
  • <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">   
  •               <property name="jndiName"><value>java:comp/env/jdbc/roseindiaDB_local</value></property>   
  •        </bean>   
  • 总结:3种方式中的第一种没有使用连接池,故少在项目中用到,  
  • [html] view plaincopy  
    1. 第三种方式需要在web server中配置数据源,不方便于部署,本人推荐使用每二种方式进行数据源的配置。   


     

    配置一个数据源 
        Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0

    可以在Spring配置文件中利用这两者中任何一个配置数据源。

     

     DBCP数据源 


        DBCP类包位于 <spring_home></spring_home>/lib/jakarta-commons/commons-dbcp.jar

    DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池,

    所以在类路径下还必须包括<spring_home></spring_home>/lib/jakarta- commons/commons-pool.jar

     

    下面是使用DBCP配置MySql数据源的配置片断:

    xml 代码

     

     

    [html] view plaincopy  
    1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"          
    2.         destroy-method="close">          
    3.     <property name="driverClassName" value="com.mysql.jdbc.Driver" />         
    4.     <property name="url"

    人气教程排行