Estoy tratando de obtener todos los datos de una tabla contenida en una base de datos, y analizar en una Lista. He probado varias técnicas diferentes y no pueden conseguir trabajo. Estoy tratando de serializar el conjunto de resultados, por lo que puede enviar a través de un socket. El código que he conseguido hasta ahora es:

public Object readJavaObject(String query, Connection con) throws Exception
{        
    PreparedStatement stmt = con.prepareStatement(query);
    //stmt.setString(1, id);
    query_results = stmt.executeQuery();
    while (query_results.next())
    {
        dataObject = query_results.getObject(1);
    }
    query_results.close();
    stmt.close();

    return dataObject;
}

public void run()
{
    try
    {
        Class.forName(dbClass);
        con = DriverManager.getConnection (dbUrl, user, pass);
        query = "SELECT * FROM Bench_table";
        dataList = (List) this.readJavaObject(query, con);
        con.close();
    }
}

No estoy seguro de cuál es el código para escribir alrededor de readJavaObject. Alguien puede ayudar a señalar el origen del problema es?

Gracias por la ayuda.

  • nos puede decir ¿cuál es la excepción ,el mensaje de error alrededor ?
  • Elite Caballero — estoy buscando para almacenar todos los datos de la tabla como una Lista en lugar de un conjunto de resultados. Gracias

4 Comentarios

  1. 2

    Hay varios problemas con su código.

    1. Bucle a través de los resultados, pero
      sólo devolver los datos de la última fila.
      En lugar de crear una Lista en la
      readJavaObject método y añadir un
      elemento de cada pasada por el bucle.
    2. En lugar de obtener el elemento de la primera columna, supongo que usted quiere de todos los datos. Usted va a tener que ser más específico con el que «obtener» los métodos que usa para tirar de los datos del conjunto de resultados. Posiblemente crear un POJO para representar una fila de datos, a continuación, dentro del bucle rellenar y almacenar en la lista.
    3. Asumiendo que el uso de un POJO, puede que desee utilizar medicamentos genéricos con su lista para que sea más fácil para obtener elementos de salir de ella, sin necesidad de emitir.
  2. 3

    Echa un vistazo a DbUtils (de apache commons).

    Si necesita más compleja solución para el mapeo de resultados sql a objetos java, echa un vistazo a mapeo objeto-relacional. En Java es el estándar JPA (Java Persistence API), con Hibernate, EclipseLink y OpenJPA como el más famoso de los ejecutores.

    • he estado buscando la última media hora de «pojo sin hibernar» y un montón de otras variaciones, y esta es la primera referencia que he encontrado lo que estaba buscando… gracias!
  3. 0

    Recientemente he descubierto el CachedRowSet, que hace exactamente lo OP necesidades. Es en particular permite serializar un ResultSet, y para restaurar el original cuando sea necesario.

Dejar respuesta

Please enter your comment!
Please enter your name here