Feedback

No olvide que también tenemos una biblioteca con fragmentos de código, http://snippets.dev-co.org _\../

Close

what's your question? be descriptive.

By: Asked from Colombia

problema con java y sql

Java Tengo una excepcion java.sql.SQLException: ResultSet close con el siguiente codigo:

public String getString(String table, String column, int id) {
    String string = "Error";
    try {
        Statement stmt = dbConnection.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT " + column + " FROM " + table + " where id = " + id);
        string = rs.getString(column);
        rs.close();
    } catch (SQLException ex) {
        Logger.getLogger(DbTask.class.getName()).log(Level.SEVERE, null, ex);
    }
    return string;
}
  • 0

jukdulinux [ Editor ]

Perdón me equivoque de bloque, aquí esta mi respuesta:
El error es que debido a que cuando obtiene el resulset al ejecutar el query, no invocas el next(), este método mueve el apuntador una posición y te indica si hay elementos en esa posición; inicialmente el result set apunta a un posición antes del primer registro, por eso debes llamar el metodo next(), para que se coloque en el primer registro y te indique si hay o no registros por sacar. Cabe destacar que cada posición del result set es un registro de la consulta; es importante que lleves control sobre los elementos a sacar con el next, para que no tengas sorpresas de excepciones. Y como dice xphree, es buena practica cerrar los objetos que tienen que ver con la consulta en un bloque finally. Por ultimo te recomendaría que le dieras un vistazo a spring framework, ya que con el puedes manejar pool de conexiones, manejo de transacción, y evitar estos problemas, con el manejo de las conexiones.

or Cancel