spring 配置數據源

方式一:DBCP數據源

  第一,beans標籤須要引入的spring頭部信息html

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-instance.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">  

  第二,準備properties數據源配置文件spring

#等號=前面的值能夠隨意定義至關於map中的key,=後設置數據庫相關信息
#數據庫驅動
base.driverClassName=oracle.jdbc.driver.OracleDriver
#數據庫地址
base.url=jdbc:oracle:thin:@192.168.0.21:1521:orcl
#用戶名
base.username=jmjkk
#密碼
base.password=jmjkk

  第三,引入properties文件數據庫

<!-- 加載Properties(classpath:後設置的是該文件所在路徑) -->
<context:property-placeholder ignore-unresolvable="true" location="classpath:conf.properties" />

  第四,將讀取的properties文件中的數據配置進行指定apache

<!-- 配置數據源及對象 -->
<bean id="dataSourceOracle" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${base.driverClassName}" />
    <property name="url" value="${base.url}" />
    <property name="username" value="${base.username}" />
    <property name="password" value="${base.password}" />
    <!-- 下面的屬性能夠不要 -->
    <!-- 從數據源中返回的鏈接是否採用自動提交機制 -->
    <property name="defaultAutoCommit" value="true" />
    <!-- 是否僅能執行只讀操做 -->
    <property name="defaultReadOnly" value="false" />
    <property name="initialSize" value="0" />
    <!-- 最大鏈接數據庫鏈接數,設置爲0時,表示沒有限制 -->
    <property name="maxActive" value="10" />
    <!-- 最大等待鏈接中的數量,設置爲0時,表示沒有限制 -->
    <property name="maxIdle" value="1" />
    <!-- 最大等待秒數,單位爲毫秒 -->
    <property name="maxWait" value="6000" />
    <property name="testWhileIdle" value="true"/>
    <property name="timeBetweenEvictionRunsMillis" value="60000" />
    <property name="numTestsPerEvictionRun" value="1" />
    <property name="validationQuery" value="select 1 from dual" />
</bean>

  BasicDataSource提供了close()方法關閉數據源,因此必須設定destroy-method=」close」屬性, 以便Spring容器關閉時,數據源可以正常關閉。併發

  屬性介紹:oracle

  defaultAutoCommit:設置從數據源中返回的鏈接是否採用自動提交機制,默認值爲 true;
  defaultReadOnly:設置數據源是否僅能執行只讀操做, 默認值爲 false;
  maxActive:最大鏈接數據庫鏈接數,設置爲0時,表示沒有限制;
  maxIdle:最大等待鏈接中的數量,設置爲0時,表示沒有限制;
  maxWait:最大等待秒數,單位爲毫秒, 超過期間會報出錯誤信息;
  validationQuery:用於驗證鏈接是否成功的查詢SQL語句,SQL語句必須至少要返回一行數據, 如你能夠簡單地設置爲:select 1 from dual;
  removeAbandoned:是否自我中斷,默認是 false ;
  removeAbandonedTimeout:幾秒後數據鏈接會自動斷開,在removeAbandoned爲true,提供該值;
  logAbandoned:是否記錄中斷事件, 默認爲 false;大數據

  下面能夠再添加事務配置等。ui

  所需jar包,對應的數據庫驅動以及dbcpjar包url

  好比:ojdbc7.jar和commons-dbcp-1.4.jarspa

方式二:DruidDataSource鏈接池配置

  第一,beans標籤引入須要的spring頭部信息;

  第二,準備properties數據源配置文件;

  第三,引入properties文件;

<!-- 加載Properties -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:conf.properties" />
</bean>

  第四,數據源鏈接池配置

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <property name="filters" value="stat" />
    <!-- 鏈接池的最大數據庫鏈接數。設爲0表示無限制。通常把maxActive設置成可能的併發量就好了 -->
    <property name="maxActive" value="100" />
    <!-- 鏈接池初始大小 -->
    <property name="initialSize" value="10" />
    <!-- 最大等待毫秒數, 單位爲 ms, 若是超過此時間將接到異常,設爲-1表示無限制 -->
    <property name="maxWait" value="60000" />
    <!-- 最大等待(空閒)鏈接中的數量,設 0 爲沒有限制 -->
    <property name="maxIdle" value="100" />
   <!-- 最小等待(空閒)鏈接中的數量 -->
    <property name="minIdle" value="30" />
    <!-- 在空閒鏈接回收器線程運行期間休眠的時間值,以毫秒爲單位. 若是設置爲非正數,則不運行空閒鏈接回收器線程 -->
    <property name="timeBetweenEvictionRunsMillis" value="3000" />
    <!-- 鏈接池中保持空閒而不被空閒鏈接回收器線程 ,回收的最小時間值,單位毫秒 -->
    <property name="minEvictableIdleTimeMillis" value="300000" />
    <!-- SQL查詢,用來驗證從鏈接池取出的鏈接,在將鏈接返回給調用者以前.若是指定, 則查詢必須是一個SQL SELECT而且必須返回至少一行記錄 -->
    <property name="validationQuery" value="SELECT 'x'" />
    <!-- 指明鏈接是否被空閒鏈接回收器(若是有)進行檢驗.若是檢測失敗, 則鏈接將被從池中去除。注意: 設置爲true後若是要生效,validationQuery參數必須設置爲非空字符串 -->
    <property name="testWhileIdle" value="true" />
    <!-- 指明是否在從池中取出鏈接前進行檢驗,若是檢驗失敗 則從池中去除鏈接並嘗試取出另外一個. 注意: 設置爲true後若是要生效,validationQuery參數必須設置爲非空字符串 -->
    <property name="testOnBorrow" value="false" />
    <!-- 指明是否在歸還到池中前進行檢驗 -->
    <property name="testOnReturn" value="false" />
    <!-- 開啓池的prepared statement 池功能 -->
    <property name="poolPreparedStatements" value="true" />
    <!--  -->
    <property name="maxPoolPreparedStatementPerConnectionSize"	value="20" />
</bean> 

  所需jar包,對應的數據庫驅動以及dbcpjar包

  好比:org.springframework.beans-3.0.5.RELEASE.jar和classes12.jar

方式三:JNDI數據源

 

寫在最後

  哪位大佬如若發現文章存在紕漏之處或須要補充更多內容,歡迎留言!!!

 相關推薦:

相關文章
相關標籤/搜索