连接和关闭资源工具类

Posted 芬乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接和关闭资源工具类相关的知识,希望对你有一定的参考价值。

做一个工具类,里面封装了两个方法,一个用来获得连接,一个用来关闭资源

package com.sjx.tool;

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtils {
    private static String driver;
    private static String url;
    private static String user;
    private static String password;
    
    
    
    static{
        
        try {
            //0读取配置文件
            Properties prop  = new Properties();
            
            InputStream is = new FileInputStream("src/db.properties");
            
            
            prop.load(is);
            
            is.close();
            
            driver = prop.getProperty("driver");
            url = prop.getProperty("url");
            user = prop.getProperty("user");
            password = prop.getProperty("password");
            
            //1 注册驱动
            Class.forName(driver);
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }
    
    //1 获得连接
    public static Connection getConnection(){
        Connection conn = null;
        try {
            //2 获得连接
            conn = DriverManager.getConnection(url, user, password);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("创建连接失败!");
        }
        
        return conn;
    }
    
    //2 释放资源
        //1> 参数可能为空
        //2> 调用close方法要抛出异常,确保即使出现异常也能继续关闭
        //3>关闭顺序,需要从小到大
    public  static void  close(Connection conn , Statement st , ResultSet rs){
        
        try {
            if(rs!=null){
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            try {
                if(st!=null){
                st.close();    
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    if(conn!=null){
                        conn.close();    
                        }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            
        }
        
    }
    
    
    public static void main(String[] args) {
        System.out.println(getConnection());  //本机安装的数据库能接受的连接数是极少的,所以少执行几次
    }
}

 

以上是关于连接和关闭资源工具类的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ 学习---- 连接工具类

RabbitMQ 学习---- 连接工具类

Java 中封装JDBC连接到JDBCUtils工具类的详解

一个JDBC封装工具类

自定义的jdbc连接工具类JDBCUtilsjava 工具类

如何在片段中使用按钮[关闭]