配置数据源的三种方式和sql心跳的配置详解数据库

三种方式配置数据源连接池:

 1 <?xml version="1.0" encoding="UTF-8"?> 
 2 <beans xmlns="http://www.springframework.org/schema/beans" 
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
 4     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 
 5     xsi:schemaLocation=" 
 6         http://www.springframework.org/schema/beans  
 7         http://www.springframework.org/schema/beans/spring-beans.xsd 
 8         http://www.springframework.org/schema/context  
 9         http://www.springframework.org/schema/context/spring-context.xsd 
10         http://www.springframework.org/schema/tx  
11         http://www.springframework.org/schema/tx/spring-tx.xsd 
12         http://www.springframework.org/schema/aop  
13         http://www.springframework.org/schema/aop/spring-aop.xsd"> 
14  
15     <!-- 配置数据源 01.spring的默认数据源 --> 
16     <!-- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
17         <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property  
18         name="url" value="jdbc:mysql:///news"/> <property name="username" value="wym"/>  
19         <property name="password" value="wym"/> </bean> --> 
20  
21     <!-- 配置数据源 02.dbcp数据源 --> 
22     <!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">  
23         <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property  
24         name="url" value="jdbc:mysql:///news"/> <property name="username" value="wym"/>  
25         <property name="password" value="wym"/> </bean> --> 
26  
27  
28     <!-- 配置数据源 03.c3p0数据源 --> 
29     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
30         <property name="driverClass" value="${driverClass}" /> 
31         <property name="jdbcUrl" value="${jdbcUrl}" /> 
32         <property name="user" value="${user}" /> 
33         <property name="password" value="${password}" /> 
34     </bean> 
35  
36     <!-- 01. 使用配置文件 加载 数据库需要的4要素 经常使用 --> 
37     <context:property-placeholder location="classpath:jdbc.properties" /> 
38  
39     <!-- 02.使用配置文件 加载 数据库需要的4要素 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
40         <property name="location" value="classpath:jdbc.properties"></property> </bean> --> 
41  
42  
43 <!--配置sessionFactory --> 
44     <bean id="sessionFactory" 
45         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
46         <!-- 读取hibernate配置文件<property name="configLocation" value=classpath:hibernate.cfg.xml"/> --> 
47  
48         <!-- 配置数据源 --> 
49         <property name="dataSource" ref="dataSource"></property> 
50         <!-- 配置映射文件 --> 
51         <property name="mappingDirectoryLocations" value="cn/teacher/bean" /> 
52         <property name="hibernateProperties"> 
53             <props> 
54                 <prop key="hibernate.hbm2ddl.auto">update</prop> 
55                 <prop key="hibernate.show_sql">true</prop> 
56                 <prop key="hibernate.format_sql">true</prop> 
57                 <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLInnoDBDialect</prop> 
58             </props> 
59         </property> 
60     </bean> 
61     <!--配置dao --> 
62     <bean id="teacherDao" class="cn.teacher.dao.TeacherDaoImpl"> 
63         <property name="sessionFactory" ref="sessionFactory" /> 
64     </bean> 
65     <!-- 配置service --> 
66     <bean id="teacherService" class="cn.teacher.service.TeacherServiceImpl"> 
67         <property name="dao" ref="teacherDao"></property> 
68     </bean> 
69     <!-- 配置action层 --> 
70     <!-- ===================事务================== --> 
71     <!-- 配置事务管理器 --> 
72     <bean id="transactionManager" 
73         class=" org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
74         <property name="dataSource" ref="dataSource" /> 
75     </bean> 
76  
77     <tx:advice id="txAdvice" transaction-manager="transactionManager"><!-- 设置事务通知 --> 
78         <tx:attributes> 
79             <tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED" /> 
80             <tx:method name="del*" isolation="DEFAULT" propagation="REQUIRED" /> 
81             <tx:method name="update*" isolation="DEFAULT" propagation="REQUIRED" /> 
82             <tx:method name="find*" read-only="true" isolation="DEFAULT" 
83                 propagation="REQUIRED" /> 
84         </tx:attributes> 
85     </tx:advice> 
86     <aop:config><!-- 指定切入点 --> 
87         <aop:pointcut expression="execution(* *..service.*.*(..))" 
88             id="myPoint" /> 
89         <aop:advisor advice-ref="txAdvice" pointcut-ref="myPoint" /> 
90     </aop:config> 
91 </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文件:

配置数据源的三种方式和sql心跳的配置详解数据库

 1 jdbc.driver=com.mysql.jdbc.Driver 
 2 jdbc.url=jdbc:mysql://localhost:3306/sldb?useUnicode=true&characterEncoding=utf-8 
 3 jdbc.username=hhr 
 4 jdbc.password=hhr 
 5  
 6 #最小空闲数 
 7 minIdle=45 
 8 #允许最大空闲数  不能配置太小 
 9 maxIdle=50 
10 #初始化时 连接个数   默认是0 
11 initialSize=5    
12 #同时连接的最大活动数   默认是8 
13 maxActive=100 
14 #最大等待时间 
15 maxWait=100 
16 #超过这个时间就会将没用的连接回收 
17 removeAbandonedTimeout=180 
18 #是否开启无用连接的回收机制 
19 #【当前空闲连接数<2 && 当前活动数>最大活动数-3】这种情况下会回收 
20 removeAbandoned=true

jdbc.properties

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/4260.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论