使用JDBC删除记录

使用JDBC删除记录

删除表记录,通过ID删除表中的记录。

完整代码

import java.sql.*;

public class Demo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");//注册JDBC驱动
        String url = "jdbc:mysql://localhost:3306/tablename1?useSSL=false&serverTimezone=Hongkong&characterEncoding=utf-8&autoReconnect=true";
        Connection conn = DriverManager.getConnection(url,"root","123321");
        Statement statement = conn.createStatement();
        String sql = "delete from user where id = 2";
        int res = statement.executeUpdate(sql);
        //记得要关闭连接
        if(statement != null) {
            statement.close();
        }
        if(conn != null) {
            conn.close();
        }
        System.out.println("执行成功。");
    }
}Code language: JavaScript (javascript)

补充说明

  • 删除操作使用 Statement 的 executeUpdate() 方法,返回受影响的行数
  • 删除指定ID的记录用 delete from user where id = 2,条件必须写明确,否则会删除整张表的数据
  • 也可以用 PreparedStatement 做参数化删除,防止sql注入:
String sql = "delete from user where id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 2);
int res = ps.executeUpdate();Code language: JavaScript (javascript)
  • executeUpdate() 返回0表示没有匹配到任何记录,删除未生效
  • 如果表设置了外键关联,删除主表记录前需要先处理从表关联数据,否则会报外键约束错误
  • 生产环境中删除操作建议先做查询确认,或者用逻辑删除(加一个 status 字段标记是否删除)代替物理删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注