gpt4 book ai didi

java - IntelliJ IDEA解决检查报告

转载 作者:行者123 更新时间:2023-11-30 07:39:26 25 4
gpt4 key购买 nike

IntelliJ IDEA 15.0.2

这是我的代码片段:

    public int update(final String sql){
int res = -1;
try (Connection con = this.connect();
Statement pst = con.createStatement() ){
res=pst.executeUpdate(sql);//**if write pst.executeUpdate("") than no inspect message**
} catch (final SQLException e) {
this.logger.log(Level.SEVERE,e.getMessage());
}
return res;
}

这是检查消息:

Call to 'Statement.executeUpdate()' with non-constant argument(short message)

more

Reports the calls to java.sql.Statement.executeUpdate() or any of its variants which take a dynamically-constructed string as the query to execute. Constructed SQL statements are a common source of security breaches

如何解决?

最佳答案

检查提示您最好使用准备好的语句。因此,您最终将得到像 UPDATE users SET name = ? 这样的查询,而不是像 UPDATE users SET name = "test"WHERE id ='1' 这样的查询。 WHERE id = ?,并在执行之前传递所需的参数。

所以在你的情况下:

PreparedStatement pst = con.prepareStatement(sql);
//如果需要,调用 pst.setInt()、pst.setString() 等
pst.executeUpdate();

请参阅本教程中的更多详细信息和示例:http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

关于java - IntelliJ IDEA解决检查报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34891618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com