Spring配置数据源的四种方式

来源:互联网 发布:可编程显示器软件 编辑:程序博客网 时间:2024/05/22 19:13

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

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

第一种:使用spring自带的DriverManagerDataSource

配置文件如下:

源码copy to clipboard打印?
  1. <?xmlversion="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.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> 
  9.  
  10.     <bean id="dataSource" 
  11.         class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
  12.         <propertyname="driverClassName"> 
  13.             <value>oracle.jdbc.driver.OracleDriver</value> 
  14.         </property> 
  15.         <propertyname="url"> 
  16.             <value>jdbc:oracle:thin:@192.168.24.102:1521:sms</value> 
  17.         </property> 
  18.         <propertyname="username"> 
  19.             <value>test</value> 
  20.         </property> 
  21.         <propertyname="password"> 
  22.             <value>test</value> 
  23.         </property> 
  24.     </bean>  
  25. </beans> 

第二种:DBCP数据源。

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

spring的配置文件中如下:

源码copy to clipboard打印?
  1.   <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"             
  2.         destroy-method="close">             
  3.     <propertyname="driverClassName"value="oracle.jdbc.driver.OracleDriver"/>            
  4.     <propertyname="url"value="jdbc:oracle:thin:@192.168.24.102:1521:sms"/>            
  5.     <propertyname="username"value="test"/>            
  6.     <propertyname="password"value="test"/>            
  7.  
  8. </bean> 

第三种:C3P0数据源。

配置文件中如下:

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

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

源码copy to clipboard打印?
  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层的方式是配置在一块的。配置如下:

源码copy to clipboard打印?
  1. <beanid="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.     <propertyname="mappingLocations">  
  8. <!-- 所有的实体类映射文件 --> 
  9.         <list> 
  10.             <value>classpath:com/hibernate/*.hbm.xml</value> 
  11.         </list> 
  12. </property> 

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

PS:DBCP数据源需要的jar包下载http://download.csdn.net/detail/llhhyy1989/4496980

         C3P0数据源需要的jar包下载http://download.csdn.net/detail/llhhyy1989/4496988

0 0