有段数据库代码只能看懂前半部分,后半部分请教一下各位

求大佬解释一下这段代码的意思,前半部分是链接数据库的,如果链接异常就打印Can't load Driver我能理解,我不理解的是后半部分的public static int runUpdate(String sql) throws SQLException里面的内容

public class DBUtil {

    private static String driver = ("com.mysql.cj.jdbc.Driver");
    private static String URL = "jdbc:mysql://localhost:3306/caipiao?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT";
    private static Connection con = null;
    private static Statement smt = null;
    private static ResultSet rs = null;
    
    private static Connection createConnection() {
        try {            
            Class.forName(driver);
            return DriverManager.getConnection(URL, "root", "root");
        } catch (SQLException e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
        } catch (java.lang.ClassNotFoundException e) {
            System.out.println("Can't load Driver");
        }
        return null;
    }

    
    
    
    public static int runUpdate(String sql) throws SQLException {
        int count = 0;
        if (con == null) {
            con = createConnection();
        }
        if (smt == null) {
            smt = con.createStatement();
        }

        count = smt.executeUpdate(sql);

        if (smt != null) {
            smt.close();
            smt = null;
        }
        if (con != null) {
            con.close();
            con = null;
        }
        return count;
    }

    



    public static int runUpdate(String sql) throws SQLException {
        int count = 0;
        if (con == null) {
            //如果con没有初始化,那么调用函数初始化一下
            //如果con已经初始化完毕,那么直接使用已经建立的连接,不重新初始化
            con = createConnection();
        }
        if (smt == null) {
            //同上,如果smt没有初始化,从con中获取对象
            smt = con.createStatement();
        }

        count = smt.executeUpdate(sql);//执行sql语句
        //count返回的是受影响的行数

        if (smt != null) {//关闭连接
            smt.close();
            smt = null;
        }
        if (con != null) {//关闭连接
            con.close();
            con = null;
        }
        return count;
    }

这个就是执行你传入的sql。
如果链接和statement为空先去创建,然后执行sql,返回SQL影响行数,最后关闭相关链接

        //获取连接
        if (con == null) {
            con = createConnection();
        }
        if (smt == null) {
            smt = con.createStatement();
        }
        //执行更新sql语句
        count = smt.executeUpdate(sql);
        //关闭连接
        if (smt != null) {
            smt.close();
            smt = null;
        }
        if (con != null) {
            con.close();
            con = null;
        }

这段代码主要用来连接数据库和执行数据库的更新操作(例如 INSERT、UPDATE、DELETE 等)。

  • 首先,在类中定义了三个静态变量:driver、URL 和 con。driver 是 MySQL JDBC 驱动的类名,URL 是数据库的连接地址,con 是连接对象。
  • 然后,定义了 createConnection 方法,用于创建数据库连接。该方法首先会加载 MySQL JDBC 驱动,然后使用 DriverManager 类的 getConnection 方法来建立与数据库的连接。如果连接异常,则会打印错误信息。
  • 最后,定义了 runUpdate 方法,用于执行数据库的更新操作。该方法接受一个参数 sql,表示要执行的 SQL 语句。
  • 在 runUpdate 方法内,如果 con 变量为 null,则会调用 createConnection 方法创建数据库连接。如果 smt 变量为 null,则会调用 con.createStatement() 创建 Statement 对象。然后使用 smt.executeUpdate 方法执行 SQL 语句并返回受影响的行数。最后,将 smt 和 con 关闭并设置为 null。