Esta respuesta a esta pregunta hecha de esta manera parece ser muy difícil de encontrar en Internet. Básicamente estoy insertando valores en una base de datos MySQL usando PreparedStatement. Uso PreparedStatement para escapar de los datos y evitar los ataques de inyección SQL. El problema es que ahora hay retreving esas llaves.Java PreparedStatement recuperando la última ID insertada
String query="Insert INTO Table_A(name, age) (?, ?)";
//String query="Insert INTO Table_A(name, age) ('abc','123')";//Doesn't escape
PreparedStatement prest;
prest = con.prepareStatement(query);
prest.setString(1,"abc");
prest.setInt(2,123);
prest.executeUpdate();
//prest.executeUpdate(query, PreparedStatement.RETURN_GENERATED_KEYS); Throws an error
//prest.executeQuery(); Throws an error
Entonces, ¿cómo puedo escapar de la entrada y usar PreparedStatements en Java?
Pase el 'RETURN_GENERATED_KEYS' a la llamada' prepareStatement() 'y use' executeUpdate() 'para exentar el inserto. Si eso no funciona, brinde la excepción. – ZeissS
@BalusC hace referencia a un método correcto para hacer esto. –
@BalusC, eso es exactamente lo que estaba buscando. ¡Mal, no es una respuesta! –