配置数据源的三种方式和sql心跳的配置
三种方式配置数据源连接池:
<?xml version="1.0" encoding="UTF-8"?>
<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:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 配置数据源 01.spring的默认数据源 -->
<!-- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property
name="url" value="jdbc:mysql:///news"/> <property name="username" value="wym"/>
<property name="password" value="wym"/> </bean> --> <!-- 配置数据源 02.dbcp数据源 -->
<!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property
name="url" value="jdbc:mysql:///news"/> <property name="username" value="wym"/>
<property name="password" value="wym"/> </bean> --> <!-- 配置数据源 03.c3p0数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driverClass}" />
<property name="jdbcUrl" value="${jdbcUrl}" />
<property name="user" value="${user}" />
<property name="password" value="${password}" />
</bean> <!-- 01. 使用配置文件 加载 数据库需要的4要素 经常使用 -->
<context:property-placeholder location="classpath:jdbc.properties" /> <!-- 02.使用配置文件 加载 数据库需要的4要素 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"></property> </bean> --> <!--配置sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 读取hibernate配置文件<property name="configLocation" value=classpath:hibernate.cfg.xml"/> --> <!-- 配置数据源 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 配置映射文件 -->
<property name="mappingDirectoryLocations" value="cn/teacher/bean" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.dialect"> org.hibernate.dialect.MySQLInnoDBDialect</prop>
</props>
</property>
</bean>
<!--配置dao -->
<bean id="teacherDao" class="cn.teacher.dao.TeacherDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置service -->
<bean id="teacherService" class="cn.teacher.service.TeacherServiceImpl">
<property name="dao" ref="teacherDao"></property>
</bean>
<!-- 配置action层 -->
<!-- ===================事务================== -->
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class=" org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"><!-- 设置事务通知 -->
<tx:attributes>
<tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED" />
<tx:method name="del*" isolation="DEFAULT" propagation="REQUIRED" />
<tx:method name="update*" isolation="DEFAULT" propagation="REQUIRED" />
<tx:method name="find*" read-only="true" isolation="DEFAULT"
propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config><!-- 指定切入点 -->
<aop:pointcut expression="execution(* *..service.*.*(..))"
id="myPoint" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="myPoint" />
</aop:config>
</beans>
配置sql心跳:
<!-- sql心跳 保证连接池中的连接是真是有效的-->
<!--开启Evict的定时校验,循环校验 -->
<property name="testWhileIdle" value="true"></property>
<!-- 定义Evict的时间间隔,单位:毫秒 -->
<property name="timeBetweenEvictionRunsMills" value="60000"></property>
<!-- 在进行borrowObject处理时,会对拿到的 连接进行校验-false-->
<property name="testOnBorrow" value="false"></property>
<!-- 在进行ruturnObject处理时,会对返回的连接进行校验-false -->
<property name="testOnReturn" value="false"></property>
<!-- 校验使用的sql语句,validatetionQuery,复杂的校验sql会影响性能 -->
<property name="validationQuery" value="select 1"></property>
<!-- 配置每次校验连接的数量,一般等于maxActive -->
<property name="numTestsPerEvictionRun" value="maxActive"></property>
properties文件:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sldb?useUnicode=true&characterEncoding=utf-8
jdbc.username=hhr
jdbc.password=hhr #最小空闲数
minIdle=45
#允许最大空闲数 不能配置太小
maxIdle=50
#初始化时 连接个数 默认是0
initialSize=5
#同时连接的最大活动数 默认是8
maxActive=100
#最大等待时间
maxWait=100
#超过这个时间就会将没用的连接回收
removeAbandonedTimeout=180
#是否开启无用连接的回收机制
#【当前空闲连接数<2 && 当前活动数>最大活动数-3】这种情况下会回收
removeAbandoned=true
jdbc.properties
配置数据源的三种方式和sql心跳的配置的更多相关文章
- 【转】Apache 配置虚拟主机三种方式
Apache 配置虚拟主机三种方式 原文博客http://www.cnblogs.com/hi-bazinga/archive/2012/04/23/2466605.html 一.基于IP 1. 假 ...
- MyBatis配置数据源的两种方式
---------------------siwuxie095 MyBatis 配置数据源的两种方式 1.配置方 ...
- 【转】在Tomcat配置JNDI数据源的三种方式
在我过去工作的过程中,开发用服务器一般都是Tomcat 数据源的配置往往都是在applicationContext.xml中配置一个dataSource的bean 然后在部署时再修改JNDI配置 我猜 ...
- Tomcat配置JNDI数据源的三种方式-转-http://blog.51cto.com/xficc/1564691
第一种,单个应用独享数据源 就一步,找到Tomcat的server.xml找到工程的Context节点,添加一个私有数据源 Xml代码 <Context docBase="WebA ...
- 在Tomcat配置JNDI数据源的三种方式
最近使用到了在tomcat下配置数据源的内容,在这里转载一篇文章记录下 转载自: http://blog.csdn.net/dyllove98/article/details/7706218 在我过去 ...
- Spring配置dataSource的三种方式 数据库连接池
1.使用org.springframework.jdbc.dataSource.DriverManagerDataSource 说明:DriverManagerDataSource建立连接是只要有连接 ...
- spring in action学习笔记十六:配置数据源的几种方式
第一种方式:JNDI的方式. 用xml配置的方式的代码如下: 1 <jee:jndi-lookup jndi-name="/jdbc/spittrDS" resource-r ...
- 配置quartz数据源的三种方式
如果是使用了JDBC JobStore或JobStoreCMT获得持久的Job时,就要配置相关的数据源了. 方式一:使用quartz.properties文件,这时只需要在property文件中增加如 ...
- Tomcat下配置JNDI的三种方式
最近在整理项目上的配置文件,正好看到了数据源配置,想着配置方式有多种,便趁热打铁,记录下常规的Tomcat配置数据源的方式 1.单个工程配置 找到Tomcat下的server.xml文件,在Conte ...
随机推荐
- 版本控制-GitHub
前面几篇文章,我们介绍了Git的基本用法及Git服务器的搭建,本篇文章来学习一下如何使用GitHub.GitHub是开源的代码库以及版本控制库,是目前使用网络上使用最为广泛的服务,GitHub可以托管 ...
- 原创:vsphere概念深入系列一:关于vsphere虚拟交换机的端口的数量限制。
总结出来的概念: vm上有多少个虚拟网卡就被分配了多少个vPort.vswitch缺省情况下有8个vmk端口(vport)保留给vmkernel使用.但是当vport不够的时候也可以被使用. 默认第一 ...
- CentOS 7搭建Linux GPU服务器
1. CUDA Toolkit的安装 到https://developer.nvidia.com/cuda-gpus查询GPU支持的CUDA版本: 到https://developer.nvidia. ...
- dd测试硬盘性能
下面直接介绍几种常见的DD命令,先看一下他的区别~ dd bs=64k count=4k if=/dev/zero of=testdd bs=64k count=4k if=/dev/zero of= ...
- SQL SERVER 行列转换(动态)
行转列测试数据: --测试数据 if not object_id(N'Tempdb..#T') is null drop table #T Go Create table #T([Name] nvar ...
- 【Vegas原创】查询SQL Server更改记录的语句
指定数据库,然后: select Name,Create_date,Modify_Date from sys.objects where type in ('U','P', 'V','F', 'TR' ...
- android 性能优化-工具篇
一.Traceview 使用TraceView主要有两种方式: 1.直接打开DDMS,选择一个进程,然后按上面的“Start Method Profiling”按钮,等红色小点变成黑色以后就表示Tra ...
- AutoMapper,对象映射的简单使用
using AutoMapper; using AutoMapper.Configuration; using System; using System.Collections.Generic; us ...
- ⑤NuPlayer播放框架之GenericSource源码分析
[时间:2017-01] [状态:Open] [关键词:android,nuplayer,开源播放器,播放框架,GenericSource] 0 导读 GenericSource是NuPlayer:: ...
- 登录tomcat服务器首页直接跳转到项目
原文:https://www.cnblogs.com/xwdreamer/p/3489996.html 需求: 客户觉得每次输入http://10.138.16.232:8080/abc/ 比较烦,他 ...