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 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题