Du bør ikke kalde executeQuery(String) på en PreparedStatement , skal du kalde executeQuery() i stedet. Dette er udtrykkeligt ikke tilladt af JDBC api'et, men går kun galt ved et uheld (på grund af syntaksfejlen) med MySQL Connector/J.
Bemærk, at din aktuelle forespørgsel svarer til:
select * from matrix where metric_name = ?
Jeg kan ikke se en grund til, hvorfor du ville bruge IN her.