使用spring框架时,平常你都使用那种数据源呢?本篇博客将分享spring常用的四种配置数据源方式。

以下使用Oracle10g版本作为例子。

第一种:使用spring自带的DriverManagerDataSource

配置文件如下: 

1. <?xml version="1.0" encoding="UTF-8"?>  
2. <beans xmlns="http://www.springframework.org/schema/beans"  
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"  
4. xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"  
5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
6.         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
7.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd  
8. >  
9.   
10. <bean id="dataSource"  
11. class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
12. <property name="driverClassName">  
13. <value>oracle.jdbc.driver.OracleDriver</value>  
14. </property>  
15. <property name="url">  
16. <value>jdbc:oracle:thin:@192.168.24.102:1521:sms</value>  
17. </property>  
18. <property name="username">  
19. <value>test</value>  
20. </property>  
21. <property name="password">  
22. <value>test</value>  
23. </property>  
24. </bean>   
25. </beans>



第二种:DBCP数据源。

需要下载的jar包:commons-dbcp.jar,commons-pool.jar

spring的配置文件中如下: 




1.   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"              
2. destroy-method="close">              
3. <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />             
4. <property name="url" value="jdbc:oracle:thin:@192.168.24.102:1521:sms" />             
5. <property name="username" value="test"/>             
6. <property name="password" value="test" />             
7.   
8. </bean>



第三种:C3P0数据源。

配置文件中如下: 


1. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"              
2. destroy-method="close">    
3. <property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />  
4. <property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.24.102:1521:sms " />  
5. <property name="user" value="test" />  
6. <property name="password" value="test" />   
7.   
8. </bean>



在配置c3p0数据源时,折腾许久,一直提示这个错误:



1.   java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(Unknown Source)  
2. at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:224)  
3. at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)  
4. at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)  
5. at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)  
6. at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)  
7. at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)  
8. at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)  
9. at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)  
10. at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)



上网查阅很多资料,发现很多人同样为这个问题头疼,并且也给出了相应的解决办法,这个问题提示驱动不对,但是网上解决办法往往都是配置文件中的xml书写问题,若你在配置过程中出现此问题的话,可以参考这个解决办法,很令人无语的解决办法:http://kangzye.blog.163.com/blog/static/3681922320091033359708/

我在配置过程出现问题是jdbc书写马虎,导致此问题出现。o(︶︿︶)o唉

第四种:使用hibernate数据源

需要hiberante核心jar包。

目前三大框架较流行,spring一般与hiberante做搭档,数据库连接方式写在hiberante的配置文件中,在spring管理hibernate中的配置文件中,直接读取hibernate核心配置文件即可。

其中读取hibernate数据源与访问dao层的方式是配置在一块的。配置如下:



1. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
2. <property name="configLocations">  
3. <list>  
4. <value>classpath:com/config/hibernate.cfg.xml</value>  
5. </list>  
6. </property>  
7. <property name="mappingLocations">   
8. <!-- 所有的实体类映射文件 -->  
9. <list>  
10. <value>classpath:com/hibernate/*.hbm.xml</value>  
11. </list>  
12. </property>



 

这是常用的几种配置方式,数据源配置好了,下一步是读取Dao层,使用spring如何读取dao层呢? 

 PS:DBCP数据源需要的jar包下载

         C3P0数据源需要的jar包下载


使用spring框架时,平常你都使用那种数据源呢?本篇博客将分享spring常用的四种配置数据源方式。

以下使用Oracle10g版本作为例子。

第一种:使用spring自带的DriverManagerDataSource

配置文件如下: 



1. <?xml version="1.0" encoding="UTF-8"?>  
2. <beans xmlns="http://www.springframework.org/schema/beans"  
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"  
4. xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"  
5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
6.         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
7.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd  
8. >  
9.   
10. <bean id="dataSource"  
11. class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
12. <property name="driverClassName">  
13. <value>oracle.jdbc.driver.OracleDriver</value>  
14. </property>  
15. <property name="url">  
16. <value>jdbc:oracle:thin:@192.168.24.102:1521:sms</value>  
17. </property>  
18. <property name="username">  
19. <value>test</value>  
20. </property>  
21. <property name="password">  
22. <value>test</value>  
23. </property>  
24. </bean>   
25. </beans>



第二种:DBCP数据源。

需要下载的jar包:commons-dbcp.jar,commons-pool.jar

spring的配置文件中如下: 




1.   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"              
2. destroy-method="close">              
3. <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />             
4. <property name="url" value="jdbc:oracle:thin:@192.168.24.102:1521:sms" />             
5. <property name="username" value="test"/>             
6. <property name="password" value="test" />             
7.   
8. </bean>



第三种:C3P0数据源。

配置文件中如下: 


1. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"              
2. destroy-method="close">    
3. <property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />  
4. <property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.24.102:1521:sms " />  
5. <property name="user" value="test" />  
6. <property name="password" value="test" />   
7.   
8. </bean>



在配置c3p0数据源时,折腾许久,一直提示这个错误:



1.   java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(Unknown Source)  
2. at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:224)  
3. at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)  
4. at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)  
5. at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)  
6. at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)  
7. at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)  
8. at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)  
9. at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)  
10. at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)



上网查阅很多资料,发现很多人同样为这个问题头疼,并且也给出了相应的解决办法,这个问题提示驱动不对,但是网上解决办法往往都是配置文件中的xml书写问题,若你在配置过程中出现此问题的话,可以参考这个解决办法,很令人无语的解决办法:http://kangzye.blog.163.com/blog/static/3681922320091033359708/

我在配置过程出现问题是jdbc书写马虎,导致此问题出现。o(︶︿︶)o唉

第四种:使用hibernate数据源

需要hiberante核心jar包。

目前三大框架较流行,spring一般与hiberante做搭档,数据库连接方式写在hiberante的配置文件中,在spring管理hibernate中的配置文件中,直接读取hibernate核心配置文件即可。

其中读取hibernate数据源与访问dao层的方式是配置在一块的。配置如下:



1. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
2. <property name="configLocations">  
3. <list>  
4. <value>classpath:com/config/hibernate.cfg.xml</value>  
5. </list>  
6. </property>  
7. <property name="mappingLocations">   
8. <!-- 所有的实体类映射文件 -->  
9. <list>  
10. <value>classpath:com/hibernate/*.hbm.xml</value>  
11. </list>  
12. </property>



 

这是常用的几种配置方式,数据源配置好了,下一步是读取Dao层,使用spring如何读取dao层呢? 

 PS:DBCP数据源需要的jar包下载

         C3P0数据源需要的jar包下载