spring配置数据源的4种方式以及Druid连接池

第一种:使用spring自带的DriverManagerDataSource(无连接池的作用)

<bean id="dataSource"  class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
    <property name="driverClassName">   
        <value>oracle.jdbc.driver.OracleDriver</value>   
    </property>   
    <property name="url">   
        <value>jdbc:oracle:thin:@192.168.24.102:1521:sms</value>   
    </property>   
    <property name="username">   
        <value>test</value>   
    </property>   
    <property name="password">   
        <value>test</value>   
    </property>   
    </bean>   

       缺点:并没有提供池化连接的机制,每次调用getConnection()获取新连接时,只是简单地创建一个新的连接。因此,这个数据源类比较适合在单元测试 或简单的独立应用中使用,因为它不需要额外的依赖类。 

 

第二种:DBCP数据源,需要引入第三方的依赖jar包(使用了连接池技术)

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">       
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />      
    <property name="url" value="jdbc:mysql://localhost:3309/sampledb" />      
    <property name="username" value="root" />      
    <property name="password" value="1234" />      
</bean> 

       注意的地方BasicDataSource提供了close()方法关闭数据源,所以必须设定destroy-method=”close”属性, 以便Spring容器关闭时,数据源能够正常关闭。

 

第三种:C3P0数据源,需要引入第三方的依赖jar包(使用了连接池技术)

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">      
    <property name="driverClass" value=" oracle.jdbc.driver.OracleDriver "/>      
    <property name="jdbcUrl" value=" jdbc:oracle:thin:@localhost:1521:ora9i "/>      
    <property name="user" value="admin"/>      
    <property name="password" value="1234"/>      
</bean> 

         优点:C3P0拥有比DBCP更丰富的配置属性,通过这些属性,可以对数据源进行各种有效的控制。

 

第四种:JNDI数据源

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">         
    <property name="jndiName" value="java:comp/env/jdbc/bbt"/>         
</bean>   

        说明:如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身提供的数据源。Spring为此专门提供引用JNDI资源的JndiObjectFactoryBean类。通过jndiName指定引用的JNDI数据源名称。 

 

druid连接池:可以对Spring web工程的JDBC进行监控和统计

Druid介绍:

Druid是一个JDBC组件库,包括数据库连接池、SQL Parser等组件。DruidDataSource是最好的数据库连接池。参考Druid wiki上的文章 <<各连接池的性能比较>>

具体可参考这篇文章:https://blog.csdn.net/flyfish778/article/details/53470683 


版权声明:本文为xhf852963原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。