1. 程式人生 > >分析共享Spring配置資料來源四種方式(附相應jar包)

分析共享Spring配置資料來源四種方式(附相應jar包)


使用spring框架時,平常你都使用那種資料來源呢?本篇部落格將分享spring常用的四種配置資料來源方式。

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

第一種:使用spring自帶的DriverManagerDataSource

配置檔案如下:

[html] view plaincopyprint?
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <beansxmlns="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.     <beanid="dataSource"
  10.         class="org.springframework.jdbc.datasource.DriverManagerDataSource"
    >
  11.         <propertyname="driverClassName">
  12.             <value>oracle.jdbc.driver.OracleDriver</value>
  13.         </property>
  14.         <propertyname="url">
  15.             <value>jdbc:oracle:thin:@192.168.24.102:1521:sms</value>
  16.         </property>
  17.         <propertyname="username">
  18.             <value>test</value>
  19.         </property>
  20.         <propertyname="password">
  21.             <value>test</value>
  22.         </property>
  23.     </bean>
  24.  </beans>

第二種:DBCP資料來源。

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

spring的配置檔案中如下:

[html] view plaincopyprint?
  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. </bean>

第三種:C3P0資料來源。

配置檔案中如下:

[html] view plaincopyprint?
  1. <beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"
  2.        destroy-method="close">
  3.    <propertyname="driverClass"value="oracle.jdbc.driver.OracleDriver"/>
  4. <propertyname="jdbcUrl"value="jdbc:oracle:thin:@192.168.24.102:1521:sms "/>
  5. <propertyname="user"value="test"/>
  6. <propertyname="password"value="test"/>
  7. </bean>

在配置c3p0資料來源時,折騰許久,一直提示這個錯誤:

[html] view plaincopyprint?
  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層的方式是配置在一塊的。配置如下:

[html] view plaincopyprint?
  1. <beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  2.  <propertyname="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層呢?

相關推薦

分析共享Spring配置資料來源方式相應jar

使用spring框架時,平常你都使用那種資料來源呢?本篇部落格將分享spring常用的四種配置資料來源方式。 以下使用Oracle10g版本作為例子。 第一種:使用spring自帶的DriverManagerDataSource 配置檔案如下: [html] view plaincopyp

spring配置資料來源方式

  配置Spring資料來源的幾種方式 配置一個數據源      Spring在第三方依賴包中包含了兩個資料來源的實現類包,其一是Apache的DBCP,其二是 C3P0。可以在Spring配置檔案中利用這兩者中任何一個配置資料來源。 DBCP資料來源      DBC

Spring配置資料來源方式小結

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc

spring 4 配置 datasource 方式

1、使用org.springframework.jdbc.datasource.DriverManagerDataSource  說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。  <bean id="dataSource"

Linux網卡配置模式以及防火墻設置的方式CentOS 7.4未完成

cmp netmask 如果 18C per 配置文件 匹配 .com cti 一、網卡配置的四種模式 1、直接修改配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO代表地址的分配方式,有dhc

springMVC中配置servlet的url-pattern的方式轉載 筆記

https://www.cnblogs.com/canger/p/6084846.html 1.精確匹配 <url-pattern>/book/listBook</url-pattern> controller @Controller @RequestM

spring配置datasource三方式

1、使用org.springframework.jdbc.datasource.DriverManagerDataSource 說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。 <bean id="dataSource" c

spring 配置的三方式:XML配置,JAVA配置和註解配置

是否有了這些 IOC 註釋,我們就可以完全摒除原來 XML 配置的方式呢?答案是否定的。有以下幾點原因:註釋配置不一定在先天上優於 XML 配置。如果 Bean 的依賴關係是固定的,(如 Service 使用了哪幾個 DAO 類),這種配置資訊不會在部署時發生調整,那麼註釋配

spring配置datasource三方式 資料庫連線池

1、使用org.springframework.jdbc.datasource.DriverManagerDataSource  說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。  <bean id="dataSource"

Spring 依賴注入方式

紙上得來終覺淺 1.構造器注入 AnimalDao: package com.roadArchitectWeb.dao; public interface AnimalDao { /*所有動物有一個說話的方法*/ public void say(); } CatDao

Mybatis 載入 Mapper配置方式

前言 Mybatis 的Mapper 是指Mybatis 執行資料庫操作的介面類以及方法,在非註解模式下,還包含與類對應的 xml 配置檔案。 第一種依據 Mapper 類 具體路徑 配置 Mapper 這種情況下,如果是非註解模式的話xml配置檔案必須和這個類在同一級目錄

spring 配置的兩方式:JAVA配置和註解配置

眾所周知,spring自從3.0開始以後,就全面推薦使用配置的方式進行程式碼編寫了,這種方式確實可以避免了之前一個專案裡面一大堆XML的情況,畢竟XML的可讀性實在不怎麼樣,而且一會寫JAVA,一會寫XML,確實還是蠻麻煩的 就目前來說spring的配置方式一

spring配置datasource三方式 資料庫連線

1、使用org.springframework.jdbc.datasource.DriverManagerDataSource 說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。 <bean i

Spring依賴注入的方式重點是註解方式

在Spring容器中為一個bean配置依賴注入有三種方式: · 使用屬性的setter方法注入  這是最常用的方式; · 使用構造器注入; · 使用Filed注入(用於註解方式). 使用屬性的setter方法注入 首先要配置被注入的bean,在該bea

spring配置datasource三方式及具體資訊

1、使用org.springframework.jdbc.datasource.DriverManagerDataSource說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。<bean id

17Spring事務管理的方式以銀行轉賬為例

寫這篇部落格之前我首先讀了《Spring in action》,之後在網上看了一些關於Spring事務管理的文章,感覺都沒有講全,這裡就將書上的和網上關於事務的知識總結一下,參考的文章如下: Spring事務機制詳解 Spring事務配置的五種方式 Spring中

2_本地直播平臺的搭建—方式20181116

本地直播平臺的搭建—五種方式 方法一:Windows下用FFmpeg+nginx+rtmp搭建直播環境 實現推流、拉流 (`測試通過`) 環境 1. 簡介: 2. 準備檔案 3. 啟動nginx伺服器 4. 配置FFmpe

執行shell指令碼的方式

原文網址:https://www.jb51.net/article/53924.htm 這篇文章主要介紹了Linux中執行shell指令碼的4種方法,即總結在Linux中執行shell指令碼的4種方法。 前提:bash shell 指令碼的方法有多種,現在作個小結。假設我們編寫好的shell指令碼的檔名為

Nginx 虛擬主機配置的三方式基於域名

3、Nginx基於域名的虛擬主機配置 使用基於域名的虛擬主機配置是比較流行的方式,可以在同一個IP上配置多個域名並且都通過80埠訪問。 3.1 假設伺服器有個IP地址為192.168.2.155 [[email protected] ~]# ifcon

C++執行緒同步的方式Windows

為什麼要進行執行緒同步?   在程式中使用多執行緒時,一般很少有多個執行緒能在其生命期內進行完全獨立的操作。更多的情況是一些執行緒進行某些處理操作,而其他的執行緒必須對其處理結果進行了解。正常情況下對這種處理結果的瞭解應當在其處理任務完成後進行。   如果不