zoukankan      html  css  js  c++  java
  • 数据库连接池 --Druid 连接工具类创建_JDBCUtils

    package com.itheima.jdbc_druid;
    
    import com.alibaba.druid.pool.DruidDataSourceFactory;
    
    import javax.sql.DataSource;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    /**
     * JdbcUtils jdbc工具类 --Druid连接池的工具类
     */
    public class JdbcUtils {
        //创建成员变量 DataSource
        private static DataSource ds;
    
        static {
            try {
                //1.加载配置文件使用properties
                Properties pro = new Properties();
                //1.1 加载文件
                pro.load(JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
                //2.使用工厂来获取数据连接池
                DataSource ds = DruidDataSourceFactory.createDataSource(pro);
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 获取连接对象方法
         * @return
         * @throws SQLException
         */
        public static Connection getConnection() throws SQLException {
            return ds.getConnection();
        }
        /*
        释放资源
         */
        public static void close(Statement stmt,Connection conn){
           close(null,stmt,conn);
    
        }
    
        /**
         * 释放资源
         * @param rs
         * @param stmt
         * @param conn
         */
        public static void close(ResultSet rs, Statement stmt, Connection conn){
            if (stmt!=null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn!=null){
                try {
                    //此处的close是归还到连接池中,不是关闭。
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    
            if (rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    
        }
    
        /**
         * 获取连接池
         * @return
         */
        public static DataSource getDataSource(){
            return ds;
        }
    
    
    }
    如有错误,望费心指出。 感激涕零。
  • 相关阅读:
    Jenkins安装以及邮件配置
    TUXEDO管理命令总结
    QTP的退出函数
    QTP 启动应用软件方法
    Robot framework 和RIDE 关系
    使用pycharm编写和运行RF脚本
    刷题-力扣-102. 二叉树的层序遍历
    刷题-力扣-反转链表
    刷题-牛客-判断链表中是否有环
    刷题-力扣-278. 第一个错误的版本
  • 原文地址:https://www.cnblogs.com/zouxiaopq/p/12569075.html
Copyright © 2011-2022 走看看