JDBCUtils工具类——statement,非配置文件版

在jdbc的开发中,存在大量重复的代码,将这些重复代码提取出来,封装起来,提高代码的复用性,简化开发。
getConnection()--获取并返回一个连接对象
close--释放资源

私有化构造函数(private)
提供静态方法getConnection,用来对外提供数据库连接对象(public)
提供静态方法close,用来释放资源

package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 这个类用来完成JDBC工具类的开发
 */
public class JDBCUtils {
    //私有化构造函数,(无法创建对象)防止外界直接创建对象
    private JDBCUtils(){};
    //提供静态方法getConnection,用来对外提供数据库连接对象java.sql.Connection
    public static Connection getConnection(){
        //1.注册驱动
        Connection conn=null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取数据库连接
            String url="jdbc:mysql:///st_db";
            String userName="root";
            String passWord="123456";
            conn=DriverManager.getConnection(url,userName,passWord);
            return conn;
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
        
    }
    //提供静态的close方法,用来释放资源
    public static void close(ResultSet rs,Statement st,Connection conn){
         //rs忘了赋值,或者赋值之前除了异常
        if(rs!=null)
        {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                rs=null;//只要发生异常就会被catch住。需要手动置空,等待垃圾回收
            }
        }
        if(st!=null)
        {
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                st=null;
            }
        }
        if(conn!=null)
        {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                rs=null;
            }
        }
    }
}

你可能感兴趣的:(JDBCUtils工具类——statement,非配置文件版)