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 ssh登录页面的问题
  • ¥60 渗透一个指定银行app,拿到客户信息,需要什么级别
  • ¥50 关于在matlab上对曲柄摇杆机构上一点的运动学仿真
  • ¥15 jetson nano
  • ¥15 :app:debugCompileClasspath'.
  • ¥15 windows c++内嵌qt出现数据转换问题。
  • ¥20 公众号如何实现点击超链接后自动发送文字
  • ¥15 用php隐藏类名和增加类名
  • ¥15 算法设计与分析课程的提问
  • ¥15 用MATLAB汇总拟合图