JDBC如何判断一条sql(delete)语句是否执行成功

今天在idea中写了一句删除数据的SQL,执行成功返回值=false,执行失败返回值还是=false! emmm

结论:

// 研究了一下
Statement.execute(sql); // 不要用这个方法执行删除语句,无论数据删除成功和失败都是返回false
Statement.executeUpdate(sql); // 得换成这种用更新数据的方法去删除数据,返回值>=1表示删除成功行数

附上我的代码:

// 引入必要的包
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class Mysqlconn {
    // 配置信息
    static String qu = "com.mysql.cj.jdbc.Driver"; // JDBC驱动
    static String db_url = "jdbc:mysql://localhost:3306/testdb"; // url
    static String user = "root"; // user
    static String pass = "root"; // pass

    public static void main(String[] args) throws Exception {
        Connection conn;
        Statement stmt;

        Class.forName("com.mysql.cj.jdbc.Driver"); // 加载驱动
        conn = DriverManager.getConnection(db_url,user,pass); // 连接MySQL
        stmt = conn.createStatement();// 实例化一个Statement对象
        String sql = "delete from test where id=1"; // sql
        int res=stmt.executeUpdate(sql); // 执行SQL语句
        System.out.println(res); // 成功删除,返回值=1,反之返回值=0

运行:

相关文档:Java Statement.execute() 方法用于执行任意指定的 SQL 语句。该方法的返回值为 boolean 类型,判断第一个结果是否为 ResultSet 对象,如果是,则返回 true,否则返回 false。

posted @ 2022-03-14 16:55  TabKey9  阅读(1382)  评论(0编辑  收藏  举报