FindsBug警告:一个准备好的语句是从一个非常量字符串生成的



我得到了findsbug警告,如"一个准备好的语句是从一个非常量字符串生成的"。我的场景像

//My code
 public static int updateSQL(String sql) throws StoreException {      
      PreparedStatement statement = null;
      statement = connection.prepareStatement(sql);  //shows violation here
}

我通过方法的参数得到"sql"。如何纠正这个警告?请帮我解决这个问题

那么,在这种情况下,我建议忽略这个警告。它的优先级很低。这种特殊bug模式的低优先级报告实际上大多是垃圾。在我看来,它不应该被报告,因为FindBugs能够更进一步,看看updateSQL方法是否总是用常量字符串调用(在这种情况下你没有问题)或不(在这种情况下,使用非常量字符串的特定地方将被报告)。我向我们的跟踪器提交了一个错误报告。

我认为这不是一个严重的警告。我得到了同样的警告,而试图使用SQL查询,其中一部分是动态的(随着场合的变化)。没有一种合适的方法可以避免这种情况。所以你可以避免它

最新更新