public List<News> delete_News(String ids) { List<News> list = null; // 创建一个空的集合用于存放被删除的 News 对象 db = new DBUtil(); String sql = "DELETE FROM news WHERE nid IN (?,?,?,?,?)"; // 构造 SQL 语句 PreparedStatement ps = db.getPs(sql); return list; // 返回被删除的 News 对象集合 }补全这段关于批量删除操作的代码
时间: 2024-02-24 12:00:36 浏览: 109
完整的批量删除代码如下所示:
```
public List<News> delete_News(String ids) {
List<News> list = new ArrayList<>(); // 创建一个空的集合用于存放被删除的 News 对象
db = new DBUtil();
String sql = "DELETE FROM news WHERE nid IN (?,?,?,?,?)"; // 构造 SQL 语句
PreparedStatement ps = db.getPs(sql); // 获取 PreparedStatement 对象
try {
String[] idArray = ids.split(","); // 将传入的 id 字符串按照逗号分隔符转为数组
for (int i = 0; i < idArray.length; i++) {
ps.setInt(i + 1, Integer.parseInt(idArray[i])); // 将 id 数组中的每个元素设置为 SQL 语句的参数
}
int result = ps.executeUpdate(); // 执行 SQL 语句并返回受影响的行数
if (result > 0) {
// 执行成功,遍历 id 数组,根据每个 id 查找对应的 News 对象并添加到集合中
for (String id : idArray) {
News news = find_NewsById(Integer.parseInt(id));
list.add(news);
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
db.close();
}
return list; // 返回被删除的 News 对象集合
}
```
上述代码中利用 PreparedStatement 对象实现了 SQL 语句的预编译,然后使用循环将 id 数组中的每个元素设置为 SQL 语句的参数。接着执行 SQL 语句,并根据受影响的行数来判断是否执行成功。若成功,则遍历 id 数组,根据每个 id 查找对应的 News 对象并添加到集合中,最后返回该集合。
阅读全文