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, 
这里写图片描述
读取配置文件的数据
这里写图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值