sonarqube错误地报告“PreparedStatement没有参数。”

时间:2016-02-01 10:28:25

标签: java sonarqube

sonarqube 错误地报告 以下(简化)来源PreparedStatement has no parameters.(squid:S2695):

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
}

问题:

  1. 这是分析仪的错误还是限制?

  2. 我可以采取哪些措施来隐藏这些“误报”吗?

1 个答案:

答案 0 :(得分:2)

这是一个误报,您可以看到here在版本4.5中已得到修复。

问题1的答案:
是的,这是一个错误,请将您的Sonar版本升级到4.5(或更高版本)

问题2的答案
禁用声纳规则 here

如何消除误报问题? here