Hay dos formas de resolver este problema:-
(1) La forma más sencilla es encapsular los parámetros y la cadena de consulta en la excepción. No resolverá tu problema al 100%, pero al menos será lo suficientemente descriptivo para manejar el error. Fragmento de código a continuación-
String param = 100;
String QUERY_STRING = "SELECT * FROM table WHERE id = ? ";
try {
stmt.setString(1, param);
Preparedstatement stmt = con.prepareStatement( QUERY_STRING )
stmt.executeUpdate( );
}
catch (SQLException exc) {
throw new RuntimeException(QUERY_STRING + “ parámetros son: ” + param );
}
(2) Puedes crear un método de utilidad en el que pasarás la cadena de consulta y la lista de parámetros. Simplemente reemplaza todos los ‘?’ con el parámetro correspondiente. Fragmento de código a continuación-
String param = 100;
String QUERY_STRING = "SELECT * FROM table WHERE id = ? ";
try {
stmt.setString(1, param);
Preparedstatement stmt = con.prepareStatement( QUERY_STRING )
stmt.executeUpdate( );
}
catch (SQLException exc) {
String query = getQueryString(QUERY_STRING, param);
throw new RuntimeException(query);
}
Nota: para un método generalizado, pasa el segundo argumento de tipo Lista, para que se puedan colocar en la consulta cualquier longitud arbitraria de parámetros.
Espero que resuelva tu problema.