• JDBC连接池(三)DBCP连接池


    JDBC连接池(三)DBCP连接池

    在前面的随笔中提到 了  1.JDBC自定义连接池  2. C3P0连接池   

    今天将介绍DBCP连接池

    第一步要导入jar包   (注意:mysql和mysql 驱动的版本问题  ,驱动过低会造成下图异常)

     

    创建db.properties 配置文件

    DBCPUtils.java 文件

     1 package com.study.jdbc.Utils;
     2 
     3 import java.io.InputStream;
     4 import java.sql.Connection;
     5 import java.sql.SQLException;
     6 import java.util.Properties;
     7 
     8 import javax.sql.DataSource;
     9 
    10 import org.apache.commons.dbcp.BasicDataSourceFactory;
    11 
    12 public class DBCPUtils {
    13 
    14     private static DataSource dataSource;
    15     static{
    16         
    17         try {
    18             InputStream is=DBCPUtils.class.getClassLoader().getResourceAsStream("db.properties");
    19             Properties props=new Properties();
    20             props.load(is);
    21             //创建数据源
    22             System.out.println(props.getProperty("driver"));
    23             dataSource=BasicDataSourceFactory.createDataSource(props);
    24             System.out.println(dataSource);
    25         } catch (Exception e) {
    26             throw new RuntimeException(e);
    27         }
    28         
    29     }
    30     public static DataSource getDataSource(){
    31         return dataSource;
    32     }
    33     public static Connection getConnection(){
    34         
    35         try {
    36             return dataSource.getConnection();
    37         } catch (SQLException e) {
    38             throw new RuntimeException(e);
    39         }
    40     }
    41 }

    TestDBCP.java

    package cn.itheima.jdbc.test;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    import org.junit.Test;
    
    import cn.itheima.jdbc.utils.DBCPUtils;
    
    public class TestDBCP {
    
        @Test
        public void test1(){
            Connection conn=null;
            PreparedStatement pstm=null;
            ResultSet rs=null;
            try {
                conn=DBCPUtils.getConnection();
                String sql="select * from user";
                pstm=conn.prepareStatement(sql);
                rs=pstm.executeQuery();
                while(rs.next()){
                    System.out.print(" userId ="+rs.getObject("userId")+"   ");
                    System.out.println(" userName ="+rs.getObject("userName"));
                    
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            
        }
        
        public static void main(String[] args) {
            Connection conn=null;
            PreparedStatement pstm=null;
            ResultSet rs=null;
            try {
                conn=DBCPUtils.getConnection();
                String sql="select * from user";
                pstm=conn.prepareStatement(sql);
                rs=pstm.executeQuery();
                while(rs.next()){
                    System.out.print(" userId ="+rs.getObject("userId")+"   ");
                    System.out.println(" userName ="+rs.getObject("userName"));
    
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            
        }
    }
  • 相关阅读:
    vue 设置全局变量、指定请求的 baseurl
    npm ERR! missing script: build
    npm install 报错,提示`gyp ERR! stack Error: EACCES: permission denied` 解决方法
    vue-cli 4 安装与 新建项目 路由
    PHP7安装redis扩展
    C#中的list的System.Predicate<in T>和System.Comparison<in T>的应用
    6个2教你认识递归的力量!
    C#中的预编译指令介绍[转]
    C#---数据库访问通用类、Access数据库操作类、mysql类 .[转]
    GOTO语句以及GOTO机制的模式实现
  • 原文地址:https://www.cnblogs.com/shaoxiaohuan/p/7763390.html
Copyright © 2020-2023  润新知