JDBC 封装成工具包使用

 


前言:

JDBC编程6步:

第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库)
第二步:获取连接( 表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭通道)
第三步:获取数据库操作对象(专门执行sq1语句的对象)
第四步:执行SQL语句(DQL DML ....)
第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有这第五步处理查询结果集。)
第六步:释放资源( 使用完资源之后一定要关闭资源。Java和数据库属于进程间的通信,开启之后一定要关闭。)

  我们在使用JDBC连MySql的时候可以发现写重复的代码是非常痛苦的,所以我这里把它封装成一个工具类进行使用,简化代码!

编写配置文件信息:

注意:最好将jdbc.properties配置文件放在项目的src目录下,以便能够正常通过代码找到

#编写配置文件信息
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/donglijiedian
name=root
passwd=zhixi158

封装:

复制代码
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

public class JUtil {
    private static String driver = null;
    private static String url = null;
    private static String name = null;
    private static String passwd = null;

    //1、注册驱动(只需要一次)
    static {
        try {
            //1、获取到流文件
            InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("jdbc.properties");
            //2、加载流文件
            Properties properties = new Properties();
            properties.load(is);

            driver = properties.getProperty("driver");
            url = properties.getProperty("url");
            name = properties.getProperty("name");
            passwd = properties.getProperty("passwd");

            //3、注册驱动
            Class.forName(driver);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //4、获取连接
    public Connection getCollection() throws SQLException {
        return DriverManager.getConnection(url, name, passwd);
    }

    //5、关闭流
    public void close(Connection conn, Statement s, ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (s != null) {
            try {
                s.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
复制代码

测试:

复制代码
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class 包装类测试文件 {
    public static void main(String[] args) {
        //1、注册驱动(会执行静态代码块)
        JUtil util = new JUtil();

        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;
        try {
            //2、获取连接
            conn = util.getCollection();
            //3、获取数据库操作对象
            st = conn.createStatement();
            //4、执行SQL
            String sql = "select * from emp";
            rs = st.executeQuery(sql);
            //5、处理查询结果集
            while (rs.next()) {
                String s1 = rs.getString(1);
                String s2 = rs.getString(2);
                String s3 = rs.getString(3);
                String s4 = rs.getString(4);
                String s5 = rs.getString(5);
                String s6 = rs.getString(6);
                String s7 = rs.getString(7);
                String s8 = rs.getString(8);
                System.out.println(s1 + " " + s2 + " " + s3 + " " + s4 + " " + s5 + " " + s6 + " " + s7 + " " + s8);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //6、释放资源
            util.close(conn, st, rs);
        }
    }
}
复制代码

 

 可以看到正常连接数据库执行代码!

posted @   Java小白的搬砖路  阅读(200)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示