配置数据源druid

原创
2016/11/09 13:53
阅读数 128

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

 

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部