文档章节

配置数据源druid

张舒歌
 张舒歌
发布于 2016/11/09 13:53
字数 683
阅读 35
收藏 1

1:maven引入相关jar包

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>4.3.3.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.26</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.1</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>1.3.0</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.22</version>
                <scope>runtime</scope>
            </dependency>

2:xml配置

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

       <!--配置数据源 使用阿里的druid连接池-->
       <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
              <property name="driverClassName" value="${jdbc_driver}"/>
              <property name="url" value="${jdbc_url}"/>
              <property name="username" value="${jdbc_name}"/>
              <property name="password" value="${jdbc_password}"/>

              <!-- 初始化连接数量 -->
              <property name = "initialSize" value = "${jdbc_initialSize}" />
              <!-- 最大并发连接数 -->
              <property name = "maxActive" value = "${jdbc_maxActive}" />
              <!-- 最小空闲连接数 -->
              <property name = "minIdle" value = "${jdbc_minIdle}" />


              <!-- 配置获取连接等待超时的时间单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。-->
              <property name = "maxWait" value = "${jdbc_maxWait}" />
              <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
              <property name = "timeBetweenEvictionRunsMillis" value ="${jdbc_timeBetweenEvictionRunsMillis}" />
              <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
              <property name = "minEvictableIdleTimeMillis" value ="${jdbc_minEvictableIdleTimeMillis}" />


              <!--用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。-->
              <property name = "validationQuery" value = "${jdbc_validationQuery}" />
              <!--建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。-->
              <property name = "testWhileIdle" value = "${jdbc_testWhileIdle}" />
              <!--申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。-->
              <property name = "testOnBorrow" value = "${jdbc_testOnBorrow}" />
              <!--归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能-->
              <property name = "testOnReturn" value = "${jdbc_testOnReturn}" />


              <!--要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100-->
              <property name="poolPreparedStatements" value="${jdbc_poolPreparedStatements}" />
              <property name = "maxOpenPreparedStatements" value ="${jdbc_maxOpenPreparedStatements}" />

              <!-- 配置监控统计拦截的filters -->
              <property name="filters" value="${jdbc_filters}" />
       </bean>


       <!--创建sqlSession工厂-->
       <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
              <property name="configLocation" value="classpath:/myBatis.xml"/>
              <property name="dataSource" ref="dataSource"/>
              <property name="typeAliasesPackage" value="com.zc.domain.po" />
              <property name="mapperLocations" value="classpath:/mappers/*Mapper.xml"/>
       </bean>


       <!--注册mapper-->
       <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
              <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
              <property name="basePackage" value="com.zc.dao"/>
       </bean>

       <!--声明式事务-->
       <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
              <property name="dataSource" ref="dataSource"/>
       </bean>
</beans>

3:jdbc.properties配置

jdbc_driver=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/zc?createDatabaseIfNotExist=true&amp;characterEncoding=utf-8&amp;useUnicode=true&zeroDateTimeBehavior=convertToNull
jdbc_name=root
jdbc_password=zhangchi


jdbc_initialSize=1
jdbc_maxActive=20
jdbc_minIdle=1

jdbc_maxWait=60000
jdbc_timeBetweenEvictionRunsMillis=60000
jdbc_minEvictableIdleTimeMillis=300000

jdbc_validationQuery=SELECT 'x'
jdbc_testWhileIdle=true
jdbc_testOnBorrow=false
jdbc_testOnReturn=false

jdbc_poolPreparedStatements=true
jdbc_maxOpenPreparedStatements=20

jdbc_filters=stat

 

© 著作权归作者所有

上一篇: 事务管理
下一篇: AOP
张舒歌
粉丝 1
博文 108
码字总数 69886
作品 0
海淀
高级程序员
私信 提问
bboss内置数据源apache dbcp与druid数据源切换方法

bboss内置数据源与druid数据源切换方法 bboss内置数据源内置数据源为apache dbcp,也可以配置到阿里巴巴开源的druid数据源,本文介绍他们之间如何切换: 内置数据源dbcp配置 bboss集成了apach...

bboss
2014/09/23
0
0
Spring Boot集成Mybatis双数据源

这里用到了Spring Boot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源实现数据库的读写分离。 添加依赖 加入Mybatis启动器,这里添加了Druid连接池、Oracle数据库驱动...

架构之路
2017/12/04
0
0
苞米豆-多数据源启动器 2.0.0 全新发布:无限制分组

一个基于springboot的快速集成多数据源的启动器 https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter 简介 dynamic-datasource-spring-boot-starter 是一个基于springboot的......

小锅盖
2018/08/05
766
7
Spring Boot 使用 Druid 和监控配置

Druid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能。 业界把 Druid 和 HikariCP 做对比后,虽说 HikariCP 的性能比 Druid 高,但是因为 Druid 包括很多维度的统计和分...

阿丢丢
2016/12/19
501
8
Spring Boot 2.0配置druid

第一种方式: 1、引入相关的包,刚开始没引入log4j包,一直报错。 2、添加druid相关的属性配置,具体各属性的意思,可以找官网或百度上去搜。 运行即可。 第二种方式: 均源于阿里参考:htt...

sam_l
2018/08/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 静态代理、Java动态代理、CGLIB动态代理

Java 的代理就是客户类不再直接和委托类打交道, 而是通过一个中间层来访问, 这个中间层就是代理。为啥要这样呢, 是因为使用代理有 2 个优势: 可以隐藏委托类的实现 可以实现客户与委托类之间...

gaomq
26分钟前
0
0
win10部署sonar代码扫描工具

一 安装MySQL解压版 此部分参看Win10安装MySQL5.7.22 解压缩版(手动配置)方法 1、下载 mysql-5.7.26-winx64.zip 解压之后生成 mysql-5.7.26-winx64 文件夹。 2、在D盘创建Mysql目录 D:\MyS...

BG2KNT
29分钟前
2
0
小程序的rpx以及rem和px的换算

(1).rpx:不论哪个型号的手机,屏幕宽度都是750rpx rpx与px的转换,根据设计稿换算 例如:设计稿750px宽度,ps上量出或者标出的宽度是多少,那么就定义多少rpx,也就是,1px = 1rpx 例如:设计...

流年那么伤
29分钟前
0
0
当我说要做大数据工程师时他们都笑我,直到三个月后……

申明: 本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于零编程基础的同学。 前言: 一、背景介绍 二、大数据介绍...

求神
33分钟前
0
0
python3 案例分享--天气预报

通过输入城市就能查出最近几日的天气情况, 代码如下: from tkinter import *import urllib.requestimport gzipimport jsonfrom tkinter import messageboxroot = Tk()...

lyle_luo
41分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部