码迷,mamicode.com
首页 > 编程语言 > 详细

spring 配置数据源

时间:2019-10-11 12:53:33      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:only   rem   work   数据源   xmlns   word   tab   关闭   文章   

方式一:DBCP数据源

  第一,beans标签需要引入的spring头部信息

<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数据源配置文件

#等号=前面的值可以随意定义相当于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文件中的数据配置进行指定

<!-- 配置数据源及对象 -->
<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容器关闭时,数据源能够正常关闭。

  属性介绍:

  defaultAutoCommit:设置从数据源中返回的连接是否采用自动提交机制,默认值为 true;
  defaultReadOnly:设置数据源是否仅能执行只读操作, 默认值为 false;
  maxActive:最大连接数据库连接数,设置为0时,表示没有限制;
  maxIdle:最大等待连接中的数量,设置为0时,表示没有限制;
  maxWait:最大等待秒数,单位为毫秒, 超过时间会报出错误信息;
  validationQuery:用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据, 如你可以简单地设置为:select 1 from dual;
  removeAbandoned:是否自我中断,默认是 false ;
  removeAbandonedTimeout:几秒后数据连接会自动断开,在removeAbandoned为true,提供该值;
  logAbandoned:是否记录中断事件, 默认为 false;

  下面可以再添加事务配置等。

  所需jar包,对应的数据库驱动以及dbcpjar包

  比如:ojdbc7.jar和commons-dbcp-1.4.jar

方式二: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数据源

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

 

spring 配置数据源

标签:only   rem   work   数据源   xmlns   word   tab   关闭   文章   

原文地址:https://www.cnblogs.com/Marydon20170307/p/11653192.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!