使用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 字段标记是否删除)代替物理删除
Previous: 使用JDBC插入记录
Next: 使用JDBC修改表记录