今天在idea中写了一句删除数据的SQL,执行成功返回值=false,执行失败返回值还是=false! emmm
结论:不要用 execute 执行删除语句,无论数据删除成功和失败都是返回false,得换成用 executeUpdate 更新数据的方法去删除数据,返回值>=1表示删除成功行数
今天在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。