`

在spring配置jdbc-pool连接池

阅读更多
看了一篇文章,讲jdbc-pool比c3p0、dbcp效率高,但没有找到它在spring中的配置方式,所以自己尝试了一下,成功了。
<?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:p="http://www.springframework.org/schema/p"  
       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-3.0.xsd  
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">  
    <!--数据源配置-->         
    <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">  
        <property name="poolProperties">  
            <bean class="org.apache.tomcat.jdbc.pool.PoolProperties">  
                <property name="url" value="jdbc:sqlserver://172.168.16.11:1433;databaseName=xgerp"/>  
                <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>  
                <property name="username" value="xgerp_r"/>  
                <property name="password" value="xgerp"/>  
                <property name="jmxEnabled" value="true"/>  
                <property name="testWhileIdle" value="false"/>  
                <property name="testOnBorrow" value="true"/>  
                <property name="validationInterval" value="30000"/>  
                <property name="testOnReturn" value="false"/>  
                <property name="validationQuery" value="select 1"/>  
                <property name="timeBetweenEvictionRunsMillis" value="30000"/>  
                <property name="maxActive" value="100"/>  
                <property name="initialSize" value="10"/>  
                <property name="maxWait" value="10000"/>  
                <property name="removeAbandonedTimeout" value="60"/>  
                <property name="minEvictableIdleTimeMillis" value="30000"/>  
                <property name="minIdle" value="10"/>  
                <property name="logAbandoned" value="true"/>  
                <property name="removeAbandoned" value="true"/>  
                <property name="jdbcInterceptors" value="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"/>  
            </bean>  
        </property>  
    </bean>  

测试代码如下
import java.sql.Connection;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
import java.util.logging.Level;  
import java.util.logging.Logger;  
import javax.sql.DataSource;  
import org.junit.Test;  
import org.springframework.context.ApplicationContext;  
import org.springframework.context.support.FileSystemXmlApplicationContext;  
  
/** 
 * 简单测试jdbc-pool在spring中的配置 
 * @author Administrator 
 */  
public class JdbcPoolTest {  
    @Test  
    public void testPool() {  
        ApplicationContext context = new FileSystemXmlApplicationContext("file:G:/vss/xuguang/web/WEB-INF/applicationContext.xml");  
        DataSource ds = (DataSource)context.getBean("dataSource");  
        Connection con = null;   
        try {  
            con = ds.getConnection();  
            Statement st  = con.createStatement();  
            ResultSet rs = st.executeQuery("select top 10 personName from comm_person");  
            while (rs.next()) {  
                System.out.println("personName: " + rs.getString("personName"));  
            }  
            rs.close();  
            st.close();  
        } catch (SQLException ex) {  
            Logger.getLogger(JdbcPoolTest.class.getName()).log(Level.SEVERE, null, ex);  
        } finally {  
            if (con != null) try {con.close();} catch (Exception ignore){}  
        }  
    }  
}  


转自http://weitd.iteye.com/blog/1497020
分享到:
评论

相关推荐

    Spring Data JDBC与JDBC的区别

    JDBC规范   java.sql和javax.sql两个包中的类与接口(天龙八部):  DataSource:数据源  DriverManager:驱动管理  Driver:JDBC驱动 ... JDBC数据库连接池/Connection Pool  DBCP:apache tomcat内置  

    Java Spring常用高性能连接池以及属性

    Java Spring常用高性能连接池以及属性 * C3P0比较耗费资源,效率方面可能要低一点。 * DBCP在实践中存在BUG,在某些种情会产生很多空连接不能释放,Hibernate3.0已经放弃了对其的支持。 * Proxool的负面评价较少,...

    spring-boot-data-source-decorator:与p6spy,datasource-proxy,flexy-pool和spring-cloud-sleuth集成的Spring Boot

    添加连接池指标(jmx,codahale,dropwizard)和灵活的策略,以根据需要调整池大小 用于分布式跟踪的库(如果在classpath中找到)可启用jdbc连接和查询跟踪(仅适用于p6spy或datasource-proxy) 为什么不将...

    Java_jdbc数据库连接池总结

    为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再...

    阿里巴巴数据库连接池完整demo

    阿里巴巴数据库连接池应该是目前最好的数据库连接池:大并发稳定,操作数据库效率高。此demo不仅有和spring整合的例子,还有单独配置的实例,供大家学习掌握

    JSP Spring中Druid连接池配置详解

    JSP Spring中Druid连接池配置 jdbc.properties url=jdbc:postgresql://***.***.***.***:****/**** username=*** password=*** applicationContext.xml中配置bean &lt;!-- 阿里 druid 数据库连接池 --&gt; ...

    struts2.1.6+spring2.0+hibernate3.2常用配置包

    最近温习ssh2整合编程,顺便浏览下struts2有什么更新的消息,下载了新版本的struts2的2.1.8.1...注:以下包为数据源连接池 相关 用到那个添加相应的包 c3p0-0.9.1.2.jar //3 commons-pool.jar //3 commons-dbcp.jar //3

    Secure_Connection_Pool:从jdbc连接池属性中删除密码

    安全的JDBC连接池 安全JDBC连接池从JDBC连接池属性文件(例如tomcat和相关服务器的context.xml)中删除存储的纯文本密码。 Spring Framework HashiCorp Vault Spring Cloud Vault支持与HashiCorp Vault集成: ://...

    SpringBoot在yml配置文件中配置druid的操作

    最新版的druid和旧版在filter配置方面有些不同,以下是旧版druid中配置filter: spring: ##数据库连接信息 datasource: url: jdbc:mysql://localhost:3306/young username: root password: root driver-class...

    Maven拆分代码.zip

    --配置连接池--&gt; &lt;bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"&gt; &lt;property name="driverClassName" value="com.mysql.jdbc.Driver"/&gt; &lt;property name="url" value="jdbc:mysql:///...

    dbcp架包 mysql架包

    用于mysql连接,以及建立dbcp连接池所用,里面包含四个文件commons-dbcp-1.2.2.jar,commons-pool-1.3.jar,mysql-connector-java-5.1.18-bin.jar,org.springframework.jdbc-3.1.2.RELEASE.jar

    springmvcmybatis

    连接池最大数量 ${jdbc.maxActive}"&gt; 连接池最大空闲 ${jdbc.maxIdle}"&gt; 连接池最小空闲 ${jdbc.minIdle}"&gt; 获取连接最大等待时间 ${jdbc.maxWait}"&gt; --&gt; 数据库连接回调密码解密 ...

    dbcp 连接池不合理的锁导致连接耗尽解决方案

    dbcp 连接池不合理的锁导致连接耗尽解决方案 应用报错,表象来看是连接池爆满了。 org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested ...

    java高并发秒杀系统.rar

    # 连接池名(据说是最快的连接池) pool-name: DataHikariCP # 最小空闲连接数 minimum-idle: 5 # 空闲连接存活最大时间,默认600000(10分钟) idle-timeout: 18000 # 最大连接数,默认10 maximum-pool-...

    SpringBoot整合Mybatis多数据源配置

    一、配置文件配置数据源a和b:(这里使用的是springboot2.0+ 默认数据库连接池hikari) spring: datasource: a: driver-class-name: oracle.jdbc.OracleDriver jdbc-url: username: password: pool-name: b: ...

    java开发常用jar包

    DBCP数据库连接池 cglib-nodep-2.1_3.jar CGLIB是一个强大的高质量高性能的代码生成库,在运行时可以用它来扩展Java类 jfreechart-1.0.12.jar 使用java生成图表的工具 log4j-1.2.15.jar 通过使用Log4j,我们...

    E-BookStore:这是电子商店在线图书市场的服务器端程序,这是在母亲组织的大学EE培训期间的实用Java Web应用程序

    用于数据库连接池的Tomcat JDBC Pool Fast Json(由阿里巴巴制造)用于Json解析器 Gson(由Google制造)用于Json-Object转换 jQuery和Ajax用于前端和数据传输 用于包管理的Maven Docker-maven-plugin用于远程...

    基于springboot,采用mybatis和mapper3插件,基于shiro的sso cookies单机实现+源代码+文档说

    3. 自动创建数据库,关闭请在配置文件找到 JDBC 链接删除 **&createDatabaseIfNotExist=true**。 4. 自动运行SQL脚本,关闭请注释掉 **spring.datasource.schema**。 5. 默认登录 **admin/admin** 6. 打印后台 SQL ...

    ibatis 开发指南(pdf)

    ibatis 开发指南 ibatis Quick Start............................................................................................ 5 准备工作..............................................................

    2013java面试题搜集

    2、那说说数据库连接池的原理 3、Java的内存管理机制是什么 4、Javascript中怎么实现继承?有几种方式? 5、spring底层用什么实现? 6、hibernate和Jdbc的区别 7、Hibernate与Ibatis的区别 8、Struts2和1的...

Global site tag (gtag.js) - Google Analytics