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);
            }
            
        }
    }
  • 相关阅读:
    iOS核心动画高级技巧之核心动画(三)
    iOS核心动画高级技巧之图层变换和专用图层(二)
    iOS核心动画高级技巧之CALayer(一)
    Swift高级语法学习总结
    Swift基础语法学习总结
    Swift语法总结补充(一)
    【思图佳预约(一)】在做预约挂号小程序时,text标签出现一截多余的空白?
    【随笔】清除浮动float的几种办法
    ----原生js实现飞机大战小游戏<第二篇>----@半城言沙
    ----原生js实现飞机大战小游戏<第一篇>----@半城言沙
  • 原文地址:https://www.cnblogs.com/shaoxiaohuan/p/7763390.html
Copyright © 2011-2022 走看看