JDBCUtils工具类的实现

JDBCUtils工具类的实现

需求:

之前的代码出现过多次的重复性工作,为了提高代码的复用性,我们将重复代码提出来封装成一个工具类
开发步骤:1.创建jdbcutils类,
     2.私有化构造函数,防止外界直接new对象
     3.提供getConnection,用来对外界提供获取数据库连接
     4.提供close方法,用来关闭资源
     5.测试
注意:优化代码:将配置文件提取到静态代码、块中,     

代码实现如下:

package on.Util;

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

/**
 * 这个类是jdbc的工具类
 * 提供getConnection方法
 * 提供close方法
 * 开发步骤:
 * 1.私有化构造函数,防止外界直接new对象
 * 2.提供getConnection,用来对外界提供获取数据连接
 * 3.提供close方法,用来关闭资源
 * 4.测试
 * @date 2018年3月23日
 *
 */
public class JDBCUtils {
    //将读取属性文件放在静态代码块中
    //保证文件只被读取一次,节省资源
    static Properties prop =null;
    static{
        try{
            //读取配置文件jdbc.properties
            prop = new Properties();
            String pathname="jdbc.properties";
            prop.load(new FileInputStream(pathname));
        }catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //1.私有化构造函数,
    // 防止外界直接new对象
    private JDBCUtils(){}
    //2.提供getConnection,
    // 用来对外界提供获取数据连接
    public static Connection getConnection(){
        try {
            //1.注册驱动
            Class.forName(
                    prop.getProperty("driverClass"));
            //2.获取数据库连接
            Connection conn = DriverManager.getConnection(
                    prop.getProperty("jdbcUrl"),
                    prop.getProperty("user"),
                    prop.getProperty("password"));
            return conn;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;

    }

    // 3.提供close方法,用来关闭资源
    public static void close(Connection conn,Statement st,ResultSet rs){

        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                //保证资源一定会被释放
                conn=null;
            }
        }

        if(st!=null){
            try {
                st.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                //保证资源一定会被释放
                st=null;
            }
        }

        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                //保证资源一定会被释放
                rs=null;
            }
        }
    }
}

配置文件的开发形式

* 需求
将程序中出现的配置参数,提取到配置文件中,
提高程序的灵活性。
*  开发步骤
创建jdbc.properties,属性文件。K V,想获取value通过get方法。 
创建步骤:文件在工程的根目录下,选中工程名字,右键,new,file, 
JDBCUtils工具类的实现_第1张图片
读取配置文件的数据
JDBCUtils工具类的实现_第2张图片

你可能感兴趣的:(JDBCUtils工具类的实现,JDBC入门案例)