zoukankan      html  css  js  c++  java
  • 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);
            }
            
        }
    }
  • 相关阅读:
    作业:利用正则表达式知识, 编辑一个简单的表达式计算器
    正则表达式:内置re模块
    HTML5笔记
    安卓开发-intent在Activity之间数据传递
    NumPy-矩阵部分
    Jupyter notebook入门
    Anaconda入门教程
    在python2里面使用python3的print
    判断浏览器是不是支持html5
    python爬虫-html解析器beautifulsoup
  • 原文地址:https://www.cnblogs.com/shaoxiaohuan/p/7763390.html
Copyright © 2011-2022 走看看