nodriver1 2022-12-27 14:36 采纳率: 50%
浏览 28
已结题

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

求大佬解释一下这段代码的意思,前半部分是链接数据库的,如果链接异常就打印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;
    }

    

  • 写回答

4条回答 默认 最新

  • 於黾 2022-12-27 14:46
    关注
    
    
        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;
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月27日

悬赏问题

  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果