精华内容
下载资源
问答
  • DBCP连接池使用

    2020-06-14 22:07:15
    commons-dbcp-1.4.jar ojdbc6.jar 步骤2 获取连接对象 public void getConn(){ try{ BasicDataSource bds = new BasicDataSource(); bds.setUrl(url); bds.setUserName(userName); bds.setPassWord...

    步骤1 导入相关jar 包

    	commons-pool-1.6.jar 
    	commons-dbcp-1.4.jar
    	ojdbc6.jar
    

    步骤2 获取连接对象

    public void getConn(){
    	try{
    		BasicDataSource bds = new BasicDataSource();
    		bds.setUrl(url);
    		bds.setUserName(userName);
    		bds.setPassWord(password);
    		conn = bds.getConnection(); //通过连接池获取的对象不需要进行关闭,待程序结束后自行关闭
    	}catch(SQLException e){
    		e.printStackTrace();
    	}	
    }
    

    步骤三 测试

    展开全文
  • DBCP连接池使用方法

    千次阅读 2017-10-21 20:43:46
    DBCP连接池使用方法1. 简单介绍DBCP(DataBase Connection Pool)数据库连接池,是java数据库连接池的一种,由Apache开发,通过数据库连接池,可以让程序自动管理数据库连接的释放和断开。百度百科DBCP2. 使用步骤 ...

    1. 简单介绍

    DBCP(DataBase Connection Pool)数据库连接池,是java数据库连接池的一种,由Apache开发,通过数据库连接池,可以让程序自动管理数据库连接的释放和断开。百度百科DBCP

    2. 使用步骤

    1. 导入jar包(commons-dbcp-1.4.jar和commons-pool-1.5.6.jar),这些包都可以在官网下载,或者百度云下载链接:http://pan.baidu.com/s/1eSALKlk 密码:wlu9

    2. 使用代码如下:

        @Test
        public void f1() throws SQLException {
            BasicDataSource ds = new BasicDataSource();
    
            //配置信息
            ds.setDriverClassName("com.mysql.jdbc.Driver");//注册驱动
            ds.setUrl("jdbc:mysql:///yourdb?useSSL=false");//url
            ds.setUsername("root");//数据库用户名
            ds.setPassword("123456");//数据库密码
    
            Connection conn = (Connection) ds.getConnection();
            String sql = "insert into category values(?, ?)";
            PreparedStatement st = (PreparedStatement) conn.prepareStatement(sql);
            st.setString(1, "c999");
            st.setString(2, "drink");
    
            int i = st.executeUpdate();
            if(i == 1) {
                System.out.println("success");
            } else {
                System.out.println("fail");
            }
    
        }

    表结构什么的就不说了,主要是得到DataSource就好了,不过dbcp用的是BasicDataSource()而已
    下面讲讲怎么通过配置文件的方式

    1. 如何配置文件
      • 编写一个properties文件,文件名为dbcp.properties,然后向文件中写入:
            #连接基本设置
            driverClassName=com.mysql.jdbc.Driver
            url=jdbc:mysql://localhost:3306/day07_db?useSSL=false
            username=root
            password=123456
    

    实现jdbc操作:

        @Test
        public void f2() throws Exception {
            Properties prop = new Properties();
            try {
                prop.load(new FileInputStream("src/dbcp.properties"));
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
            DataSource ds = new BasicDataSourceFactory().createDataSource(prop);
            Connection conn = (Connection) ds.getConnection();
            String sql = "insert into category values(?, ?)";
            PreparedStatement st = (PreparedStatement) conn.prepareStatement(sql);
            st.setString(1, "c998");
            st.setString(2, "drink");
    
            int i = st.executeUpdate();
            if(i == 1) {
                System.out.println("success");
            } else {
                System.out.println("fail");
            }
        }
    展开全文
  • dbcp连接池使用例子

    2010-05-10 16:04:08
    一个dbcp连接池使用例子,包含jar包,配有说明文档
  • NULL 博文链接:https://364232252.iteye.com/blog/2368464
  • DBCP连接池使用问题

    2017-06-27 22:15:00
    问题现象: 启动应用,访问无压力,一切正常,一段时间过后,应用访问异常。 问题分析: 1、web容器线程爆满,拒绝服务。由于应用并发量大,线程...3、通过查询服务器日志,发现数据库连接异常:连接超时。 4...

     

    问题现象:

    启动应用,访问无压力,一切正常,一段时间过后,应用访问异常。

     

    问题分析:

    1、web容器线程爆满,拒绝服务。由于应用并发量大,线程响应时间长增加,线程池连接数逐步递增直到爆满,导致应用拒绝服务。

    2、通过对线程信息的分析,发现线程处理时间都卡在连接数据库中,通过对数据库服务器的检查,数据库是没有问题的。

    3、通过查询服务器日志,发现数据库连接异常:连接超时。

    4、查询DBCP连接池连接使用情况,空闲链接和使用链接还正常。

     

    问题思考:

    从以上信息可以确认,问题一定出在应用层,并且是应用连接数据库之间,但为什么连接池还有正常链接,但是连接不上?而项目已启动时正常进行的,但运行一段时间,却报出数据库连接超时异常信息。线程时间就是消耗在等待数据库连接的过程。连接池还没达到最大连接数,空闲连接还有,但为什么连接不上呢?

     

    解决问题:

    带着以上疑问,反复查看了连接池的配置文件信息,是否配置问题,几个配置信息给了我灵感,带着这个思绪继续重演问题发生的过程和对日志的观察,终于发现了问题所在,就是数据库连接池的空闲链接超时。但连接池并没有立刻回收,当有新的请求进来就继续分配连接池中的空闲链接,但连接池并没有验证链接的有效性,所以线程就出现了等待超时的一个过程。

     

    解决方案:

    1、配置借链接要求连接池检测此链接有效性:testOnBorrow

    2、配置还链接要求连接池检测此链接有效性:testOnReturn

    3、配置要求连接池定时检测空闲链接有效性:testWhileIdle

    转载于:https://www.cnblogs.com/zhangyingai/p/7087410.html

    展开全文
  • #程序中的连接不使用后是否被连接池回收(该版本要使用removeAbandonedOnMaintenance和removeAbandonedOnBorrow) #removeAbandoned=true removeAbandonedOnMaintenance= true removeAbandonedOnBorrow= true #...

    一、导包

    下载地址:http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

    二、配置文件

    • 配置文件名称:*.properties
    • 配置文件位置:任意,监视src(classpath/类路径)
    • 配置文件内容:properties不能编写中文,不支持在STS中修改,必须使用记事本修改内容,否则中文注释就会乱码
    #驱动名
    driverClassName=com.mysql.jdbc.Driver
    #url
    url=jdbc:mysql://127.0.0.1:3306/mydb
    #用户名
    username=sa
    #密码
    password=123456
    
    #初试连接数
    initialSize=30
    #最大活跃数
    maxTotal=30
    #最大idle数
    maxIdle=10
    #最小idle数
    minIdle=5
    #最长等待时间(毫秒)
    maxWaitMillis=1000
    #程序中的连接不使用后是否被连接池回收(该版本要使用removeAbandonedOnMaintenance和removeAbandonedOnBorrow)
    #removeAbandoned=true
    removeAbandonedOnMaintenance=true
    removeAbandonedOnBorrow=true
    #连接在所指定的秒数内未使用才会被删除(秒)(为配合测试程序才配置为1秒)
    removeAbandonedTimeout=1

    常见配置项
    相关属性说明: http://commons.apache.org/proper/commons-dbcp/configuration.html

    三、编写工具类

    public class JdbcUtils {  
         private static DataSource dataSource;
        static{
            try {
                //1.加载找properties文件输入流
                InputStream is = DBCPUtils.class.getClassLoader().getResourceAsStream("db.properties");
                //2.加载输入流
                Properties props = new Properties();
                props.load(is);
                //3.创建数据源
                dataSource = BasicDataSourceFactory.createDataSource(props);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
        public static DataSource getDataSource(){
            return dataSource;
        }
    
        public static Connection getConnection(){
            try {
                return dataSource.getConnection();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    
        public static void release(ResultSet rs, PreparedStatement pstmt, Connection conn){  
    
            if(rs!=null){  
                try {  
                    rs.close();  
                } catch (SQLException e) {  
    
                    e.printStackTrace();  
                }  
                rs = null;  
            }  
    
            if(pstmt!=null){  
                try {  
                    pstmt.close();  
                } catch (SQLException e) {  
    
                    e.printStackTrace();  
                }  
                pstmt= null;  
            }  
    
            if(conn!=null){  
                try {  
                    conn.close();  
                } catch (SQLException e) {  
    
                    e.printStackTrace();  
                }  
                conn = null;  
            }  
        }  
    } 
    展开全文
  • C3P0 与 DBCP连接池使用

    2018-11-09 11:00:46
    使用需要引入jar包,配置c3p0-config.xml   c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> ...
  •  BasicDataSource配置maxWait参数(单位为ms),在getConnection()得不到Connection时(例如由于连接池用光)超时maxWait毫秒将会抛出异常(例如org.apache.commons.dbcp.SQLNestedException: Cannot g...
  • 只需要传入sql语句和参数即可,不需要获取连接和关闭连接。 package com.us.spring; import java.sql.Connection; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import ...
  • 这里介绍Hibernate dbcp连接池使用dbcp,开发人员还需要将commons-pool-1.2.jar 和commons-dbcp-1.2.1.jar两个jar包加入到classpath中。 AD: Hibernate有很多值得学习的地方,这里我们...
  • Apache DBCP连接池使用Tip

    千次阅读 2006-02-19 09:55:00
    1. BasicDataSource配置maxWait参数(单位为ms),在getConnection()得不到Connection时(例如由于连接池用光)超时maxWait毫秒将会抛出异常(例如org.apache.commons.dbcp.SQLNestedException: Cannot
  • -- 连接池的最大连接数量 --> <property name="maxActive" value="500" /> 再一个 Test 类中 package cn.junit.test; import junit.framework.TestCase; ...
  • hibernate DBCP 连接池使用的几点问题

    千次阅读 2010-06-16 13:21:00
    -- 连接池的最大连接数量 --> <property name="maxActive" value="500" /><br />  再一个 Test 类中   package cn.junit.test; import junit.framework.TestCase; import org.junit....
  • JBDC连接数据库使用dbcp连接池,实现各种增加修改删除功能
  • 1.如何使用dbcp连接池前配置jar包? 第一步:添加jar包 commons-pool.jar 依赖包: commons-dbcp.jar 第二步:添加到lib文件夹下,然后右击Build Path,添加到Add to Build Path 2.如何使用dbcp连接池? 第一步:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,383
精华内容 1,353
关键字:

dbcp连接池使用