优化这段代码@Override public int update(int id) { String sql = "update student set name='?' where id =?"; int count =this.update(sql,id,name); return count;
时间: 2023-05-23 19:01:43 浏览: 96
这段代码存在 SQL 注入的风险,建议使用 PreparedStatement 来代替字符串拼接的方式。以下是代码示例:
@Override
public int update(int id, String name) {
String sql = "update student set name=? where id=?";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, name);
pstmt.setInt(2, id);
int count = pstmt.executeUpdate();
return count;
} catch (SQLException se) {
se.printStackTrace();
return 0;
}
}
这样可以避免 SQL 注入漏洞,并提高执行效率。
相关问题
修改这段代码 @Override public int update(int id,String name) { String sql = "update student set name='?' where id =?"; int count =this.update(sql,id,name); return count;
这段代码中存在一个错误,即字符串 "name='?'" 中单引号的位置不正确,应该改为 "name=?"。改正后的代码如下:
@Override
public int update(int id,String name) {
String sql = "update student set name=? where id =?";
int count =this.update(sql,id,name);
return count;
}
阅读全文