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;
        }
    
    
    }
    如有错误,望费心指出。 感激涕零。
  • 相关阅读:
    myshop-dubbo 版图床
    Dockerfile里执行RUN chown 不起作用?
    The currently defined JAVA_HOME (/usr/local/openjdk-11) refers to a location where java was found but jstack was not found
    随机森林
    K-mean和K-mean++
    机器学习之特征选择
    聚类---度量
    机器学习之降维方法
    机器学习之生成模型和判别模型
    EM相关两个算法 k-mean算法和混合高斯模型
  • 原文地址:https://www.cnblogs.com/zouxiaopq/p/12569075.html
Copyright © 2011-2022 走看看