zoukankan      html  css  js  c++  java
  • java基础之JDBC八:Druid连接池的使用

    基本使用代码:

    /**
     * Druid连接池及简单工具类的使用
     */
    public class Test{
        public static void main(String[] args) {
            Connection conn = null;
            Statement stat = null;
            ResultSet rs = null;
            try {
                //使用简单工具类从Druid数据库连接池内取出Connection对象
                conn = DruidSimpleUtils.getConnection();
                stat = conn.createStatement();
                String sql = "SELECT * FROM users";
                rs = stat.executeQuery(sql);
                while (rs.next()) {
                    int id = rs.getInt("uid");
                    String name = rs.getString("uname");
                    String psw = rs.getString("psw");
                    System.out.println(id + "--" + name + "--" + psw);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DruidSimpleUtils.release(conn, stat, rs);
            }
        }
    }

    简单工具类:

    /**
     * Druid简单工具类
     */
    public class DruidSimpleUtils {
        //构造私有
    
        public DruidSimpleUtils() {
        }
    
        //定义一个变量 用来记录数据库连接池对象
        private static DataSource ds;
    
        //由于Druid不会像C3P0那样自动读取配置文件 所以我们使用静态代码块读取配置文件并给数据库连接池赋值
        static {
            Properties pp = new Properties();
            try {
                //加载properties配置文件  这里地址写到src的上一级即可
                pp.load(new FileReader("jdbcTest\src\config.properties"));
                //数据库连接池配置 使用DruidDataSourceFactory工厂来创建Druid连接池
                ds = DruidDataSourceFactory.createDataSource(pp);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        //后面基本跟C3P0简单工具类基本一致
    
        /**
         * 获取数据库连接Connection
         * @return
         */
        public static Connection getConnection() {
            try {
                return ds.getConnection();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return null;
        }
    
        // 释放资源
        public static void release(Connection conn, Statement stat, ResultSet rs) {
            try {
                if (rs != null) {
                    rs.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (stat != null) {
                        stat.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    try {
                        if (conn != null) {
                            conn.close();
                        }
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
        public static void release(Connection conn, Statement stat) {
            try {
                if (stat != null) {
                    stat.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (conn != null) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    config.properties文件:

    #zy
    #Mon Jun 11 21:15:49 CST 2018
    driver=com.mysql.jdbc.Driver
    password=root
    url=jdbc:mysql:///dbTemp
    username=root
  • 相关阅读:
    理解SQL查询的底层原理
    Android手机里的垃圾文件和文件夹清理
    从树莓派开始玩电脑
    Oracle 游标使用全解
    oracle获得当前时间,精确到毫秒并指定精确位数
    Oracle存储过程创建及调用
    windows命令行(DOS批处理)添加任务计划
    JS计算字符串的长度
    皮肤和DLL和图片等项目文件完全整合到exe中
    C#中使用Socket实现简单Web服务器
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/9180239.html
Copyright © 2011-2022 走看看