配置数据源的三种方式和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 ...
随机推荐
- Android中asset文件夹和raw文件夹区别与用法
*res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. *res/raw和assets的不同点:1.res/raw中的文件会被映射到R ...
- [Python设计模式] 第8章 学习雷锋好榜样——工厂方法模式
github地址:https://github.com/cheesezh/python_design_patterns 简单工厂模式 v.s. 工厂方法模式 以简单计算器为例,对比一下简单工厂模式和工 ...
- Hbase 命令小结
1.创建test,如果存在先删除 hbase(main)::> disable 'test' row(s) in 1.4250 seconds hbase(main)::> drop 't ...
- 谈谈MySQL死锁之二 死锁检测和处理源码分析
这一篇主要是通过一个实验来进行描述,过程是比较枯燥的. 实验准备 create table test_lock(id int auto_increment primary key ,stock int ...
- IDEA使用笔记(八)——自动生成 serialVersionUID 的设置
这个设置比较简单,也有一些博文已经写到了,为什么我还要写哪?(潜台词:因为我想凑一篇博文)我觉得学习,特别是编程学习是需要重复造轮子的,另外,就是加深自己的印象方便自己的查找.还有就是关键点,有些博客 ...
- 当 Visual Studio 扩展遇到错误时
我是遇到了 Github 扩展经常在 Visual Studio 启动时报错,找了一下可以尝试以下方法: 首先卸载插件 然后删除 %LocalAppData%\Microsoft\VisualStud ...
- .NET CORE MYSQL 微信小程序 HTTPS 随笔
今天一天都没有撸码,没写BUG没改BUG,整一天都在弄那个微信小程序的配置了..唉.. 一个项目用的微信小程序,界面做出来了,就等着AJAX取网络数据后再显示到界面上了,查了下文档, 小程序取网络数据 ...
- Hexo NexT 博客后台管理指南
上篇文章讲到,将Hexo NexT 博客成功上传到GitHub 并绑定到我们自定义的域名下了. 但是却还是有个问题,那就是Hexo NexT 博客如何进行后台管理呢? 如果总是通过手动创建文件的方式, ...
- Atitit 数据库view视图使用推荐规范与最佳实践与方法
Atitit 数据库view视图使用推荐规范与最佳实践与方法 1. 视图的优点:1 1.1. **提升可读性 定制用户数据,聚焦特定的数据1 1.2. 使用视图,可以简化数据操作. 1 ...
- [svc]linux下网桥-docker网桥
网桥和交换机 2口交换机=网桥 交换机: 工作在数据链路层,根据源mac学习(控制层),目的mac转发(数据层). linux的网卡 vmware workstation中的桥接 参考: http:/ ...