Java “可能报告不正确”;PreparedStatement没有参数。”;
sonarqube错误地报告了以下(简化的)源代码Java “可能报告不正确”;PreparedStatement没有参数。”;,java,sonarqube,Java,Sonarqube,sonarqube错误地报告了以下(简化的)源代码PreparedStatement没有参数。(squid:S2695): 问题: 这是分析仪的缺陷还是限制 我能做些什么来隐藏这些“假阳性”吗 这是一个误报,正如你所看到的,它在4.5版中被修复了 对问题1的回答: 是的,这是一个bug,请将您的Sonar版本升级到4.5(或更新版本) 对问题2的回答: 在声纳中禁用规则 或 如何消除假阳性问题 您使用的是哪个版本的sonar java analyzer?@benzonico我使用的是3.9不要像
PreparedStatement没有参数。
(squid:S2695):
问题:这是一个误报,正如你所看到的,它在4.5版中被修复了 对问题1的回答:
是的,这是一个bug,请将您的Sonar版本升级到4.5(或更新版本)
对问题2的回答:
在声纳中禁用规则
或
如何消除假阳性问题 您使用的是哪个版本的sonar java analyzer?@benzonico我使用的是3.9不要像这样试图缓存
PreparedStatements
。如果可以做到,司机已经做到了。
public static final String UPDATE_QUERY = "UPDATE TABLE SET COL1=? WHERE PK=?";
private PreparedStatement preparedStatement = null;
public void updateMethod(Date date, Long pk )
{
if(preparedStatement == null)
{
//ConnectionService is not a Connection!
preparedStatement = ConnectionService.prepareStatement(UPDATE_QUERY);
}
//sonarqube reports on the following two lines: 'This "PreparedStatement" has no parameters.'
preparedStatement.setDate(1, date);
preparedStatement.setLong(2, pk);
ResultSet rs = preparedStatement .executeQuery();
//further code left out
}