JDBC工具类封装

JDBC工具类,简化JDBC编程

本篇供个人学习使用,有问题欢迎讨论
一、配置JDBC的代码驱动

首先,在编写JDBC工具类前,我们得先配置JDBC的代码驱动。
不会配置的可以看我的另一篇博客,IDEA的JDBC代码配置驱动
二、创建属性配置文件

其次,我们创建一个属性配置文件,里面存放着连接SqlServer的一系列命令。在编写程序时会用到资源绑定器来绑定属性配置文件,实现程序的低耦合度,后期只需修改属性配置文件中的命令即可。
在这里插入图片描述

注意:属性配置文件必须以properties结尾,且存储在src源目录下
在这里插入图片描述

三、编写JDBC工具类

将JDBC规范下相关对象【创建】与【销毁功能】封装到方法

注册数据库服务器提供的 Driver 接口实现类
创建一个连接通道交给 Connection 接口的实例对象【Connection】管理
创建一个交通工具交给 PreparedStatement 接口的实例对象【PreparedStatement】管理
由交通工具在Java工程与数据库服务器之间进行传输,推送SQL命令并带回执行结果
交易结束后,销毁相关资源【Connection,PreparedStatement,ResultSet】

public class JDBCUtil(){
//类文件属性,可以在类文件所有的方法中使用
private Connection conn = null;
private PreparedStatement ps = null;

/**
 * 在当前类文件第一次被加载到JVM时,JVM将会自动调用当前类文件静态语句块
 */
static {
    //1. 注册数据库服务器提供的Driver接口实现类
    try{
        ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
        String driver = bundle.getString("driver");
        Class.forName(driver);
    }catch(ClassNotFoundException e){
        e.printStackTrace();
    }
}

/**
 * 封装Connection对象创建细节
 * @return 数据库连接的对象
 */
 //这里我们选择抛出异常,而不是自行内部处理。是让调用此方法的人知道出现异常时的控制台出现的异常信息
public Connection creatConnection() throws SQLException {
    //采用资源绑定器来绑定属性配置文件
    ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
    String url = bundle.getString("url");
    String username = bundle.getString("username");
    String password = bundle.getString("password");
    //2. 创建一个连接通道交给Connection接口的实例对象【Connection】管理
    conn = DriverManager.getConnection(url,username,password);
    return conn;
}

/**
 *  封装PreparedStatement对象创建细节
 * @param sql sql语句
 * @return  
 */
public PreparedStatement createStatement(String sql) throws SQLException {
    Connection conn = creatConnection();
    //3. 创建一个交通工具交给 PreparedStatement 接口的实例对象【PreparedStatement】管理
    ps = conn.prepareStatement(sql);
    //4. 由交通工具在Java工程与数据库服务器之间进行传输,推送SQL命令并带回执行结果
    return ps;
}

/**
 * 封装PreparedStatement与Connection对象销毁细节
 */
public void close(){
    if (ps != null){
        try {
            ps.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

/**
 * 封装PreparedStatement与Connection与ResultSet对象销毁细节
 * @param rs 查询结果集
 */
public void close(ResultSet rs){
    if (rs != null) {
        try {
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    close();
}

}

对JDBC工具类的测试:

public class Test01 {
public static void main(String[] args) {
//创建JDBC工具类对象
JdbcUtil util = new JdbcUtil();
PreparedStatement ps = null;
ResultSet rs = null;
try {
String sql = “select 员工姓名,员工职位,员工工资 from 员工信息表 where 员工职位 = ?”;
//这里由于在工具类中是抛出异常的,那么在调用时再抛出异常给JVM虚拟机就显然不太合理了,此时我们选择try…catch…内部处理
ps = util.createStatement(sql);
ps.setString(1,“大堂经理”);
rs = ps.executeQuery();
while (rs.next()){
System.out.println(rs.getString(“员工姓名”) + rs.getString(“员工职位”) +
rs.getString(“员工工资”));
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
//在finally语句块中的语句必定执行
util.close(rs);
}
}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值