Sie sollten executeQuery(String) nicht aufrufen auf einem PreparedStatement , sollten Sie executeQuery() aufrufen stattdessen. Dies wird von der JDBC-API explizit verboten, geht aber nur versehentlich (aufgrund des Syntaxfehlers) mit MySQL Connector/J schief.
Beachten Sie, dass Ihre aktuelle Abfrage das Äquivalent zu:
istselect * from matrix where metric_name = ?
Ich sehe keinen Grund, warum Sie IN verwenden sollten hier.