zoukankan      html  css  js  c++  java
  • DBCP数据库连接池的使用

    两个dbcp使用的架包:

                    commons-dbcp-1.4.jar   依赖于commons-pool-1.5.5.jar

                    commons-pool-1.5.5.jar

    DBCP数据库连接池的两种实现方式

    TestDBCP

    package com.aff.connection;
    import java.io.File;
    import java.io.FileInputStream;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.Properties;
    import javax.sql.DataSource;
    import org.apache.commons.dbcp.BasicDataSource;
    import org.apache.commons.dbcp.BasicDataSourceFactory;
    import org.junit.Test;
    
    //测试DBCP的数据库连接池技术
    //DBCP数据库连接池的两种实现方式
    //BasicDataSource
    public class TestDBCP {
        // 方式一:
        @Test
        public void testGetConnection() throws SQLException {
            // 创建DBCP数据库连接池
            BasicDataSource source = new BasicDataSource();
    
            // 设置基本信息
            source.setDriverClassName("com.mysql.jdbc.Driver");
            source.setUrl("jdbc:mysql://localhost:3306/test");
            source.setUsername("root");
            source.setPassword("123456");
    
            // 其他设置数据库连接池管理的相关属性
            source.setInitialSize(10);
            source.setMaxActive(20);
    
            Connection conn = source.getConnection();
            System.out.println(conn);
        }
    
        // 方式二:推荐 使用配置文件
        @Test
        public void testGetConnection2() throws Exception {
    
            Properties pros = new Properties();
            //获取流的两种方式
            // ClassLoader.getSystemClassLoader().getResourceAsStream("dbcp.properties");//方式 一
            FileInputStream is = new FileInputStream(new File("src/dbcp.properties"));//方式 二
            pros.load(is);
    // 创建了一个DBCP数据库连接池 DataSource source
    = BasicDataSourceFactory.createDataSource(pros); Connection conn = source.getConnection(); System.out.println(conn); } }

    DBCP数据库连接池的配置文件

    dbcp.properties

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/test
    username=root
    password=123456

    DBCP数据库连接池获取数据库连接

    JDBCUtilsDBCP

    package com.aff.util;
    import java.io.File;
    import java.io.FileInputStream;
    import java.sql.Connection;
    import java.util.Properties;
    import javax.sql.DataSource;
    import org.apache.commons.dbcp.BasicDataSourceFactory;
    
    //使用DBCP数据库连接池获取数据库连接
    public class JDBCUtilsDBCP {
    
        private static DataSource source;
        static {// 使用静态代码块处理
    
            try {
                Properties pros = new Properties();
                // 获取流的两种方式
                // ClassLoader.getSystemClassLoader().getResourceAsStream("dbcp.properties");
                FileInputStream is = new FileInputStream(new File("src/dbcp.properties"));
                pros.load(is);
    
                // 创建一个DBCP数据库连接池
                source = BasicDataSourceFactory.createDataSource(pros);
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    
        public  static Connection getConnection() throws Exception {
            Connection conn = source.getConnection();
            return conn;
        }
    }

    测试DBCP数据库连接池获取的连接的使用

        @Test
        public void testGetCustomerById() {
            Connection conn = null;
            try {
                conn = JDBCUtilsDBCP.getConnection();
                Customer customer = dao.getCustomerById(conn, 20);
                System.out.println(customer);
                System.out.println("获取成功");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                JDBCUtils.closeResource(conn, null);
            }
        }

    目录结构

    All that work will definitely pay off
  • 相关阅读:
    【CUDA开发】 Check failed: error == cudaSuccess (8 vs. 0) invalid device function
    【CUDA开发】 Check failed: error == cudaSuccess (8 vs. 0) invalid device function
    【神经网络与深度学习】【CUDA开发】服务器(多GPU)caffe安装和编译
    【神经网络与深度学习】【CUDA开发】服务器(多GPU)caffe安装和编译
    【神经网络与深度学习】Win10+VS2015 caffe环境搭建(极其详细)
    【神经网络与深度学习】Win10+VS2015 caffe环境搭建(极其详细)
    【OpenCV开发】OpenCV3后IPLimage转换成MAT的问题
    【OpenCV开发】OpenCV3后IPLimage转换成MAT的问题
    【VS开发】【视频开发】利用ffmpeg+opencv实现画中画
    【VS开发】【视频开发】利用ffmpeg+opencv实现画中画
  • 原文地址:https://www.cnblogs.com/afangfang/p/12684344.html
Copyright © 2011-2022 走看看