Java - Traer datos de una columna - Duda.

 
Vista:
Imágen de perfil de Alejo
Val: 12
Ha disminuido su posición en 24 puestos en Java (en relación al último mes)
Gráfica de Java

Traer datos de una columna - Duda.

Publicado por Alejo (6 intervenciones) el 20/05/2020 00:41:10
Buenos días, tardes y noches gente linda.

Esta duda tiene que ver con un proyecto que me estanqué. Teniendo el análisis completo como para encarar el problema, surgió una interrogante que no logro encontrarle la vuelta, quería saber qué opinan al respecto.
Necesito traer desde la base de datos, dentro de la tabla "tabs" todos los parámetros de la columna "id_tab" que correspondan al usuario que se logeo (id_user) y almacenar cada número en una variable de tipo int (slot_one / slot_two). La interrogante en cuestión es "¿Cómo hago para traer todos los valores del id_tab? / ¿qué consulta debería aplicar?"

IMÁGENES DE LA DB:

Example1bd


CÓDIGO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//----- Objects -------//
  Statement preparedStatment = null;
  ResultSet resultSet = null;
  Users getParamsUser = new Users();
 
 //------ Variables ------//
  String sql_query;
  int id_user = getParamsUser.getUser_id();
  int validateResult = 0;
  int accountantSlots;
 
 //---- Process ----//
 
    try {
 
     sql_query = "SELECT * FROM tabs id_tab WHERE id_user = '" + id_user + "' ";
     preparedStatment = cn.createStatement();
     resultSet = preparedStatment.executeQuery(sql_query);
 
     if (resultSet.next()){
 
         int slot_one = resultSet.getInt("id_tab");
         characters.setSlot_one(slot_one);
 
         int slot_two = resultSet.getInt("id_tab");
         characters.setSlot_two(slot_two);
 
         validateResult++;
      }

Desde ya, muchas gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Traer datos de una columna - Duda.

Publicado por Billy Joel (875 intervenciones) el 20/05/2020 05:56:06
No estoy seguro que hace tu variable/objeto characters, pero acá te dejo una posible solución.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public List<Integer> getTabIds(Users getParamsUser) {
    PreparedStatement preparedStatment = null;
    ResultSet resultSet = null;
    //------ Variables ------//
    String sql_query;
    int id_user = getParamsUser.getUser_id();
    //---- Process ----//
    /**
     * TODO: se debe obtener una conexión abierta válida para este objeto
     */
    Connection cn;
    List<Integer> ids = new ArrayList();
    try {
        sql_query = "SELECT id_tab FROM tabs WHERE id_user = ?";
        preparedStatment = cn.prepareStatement(sql_query);
        preparedStatment.setObject(1, id_user);
        resultSet = preparedStatment.executeQuery();
        if (resultSet.next()) {
            ids.add(resultSet.getInt(1));
        }
    }catch(SQLException ex){
        ex.printStackTrace(System.out);
    }finally {
        //Despues de cada consulta se debe cerrar la conexión a la base de datos
        try{
            if(cn != null && !cn.isClosed()){
                cn.close();
            }
        }catch(SQLException ex){
            ex.printStackTrace(System.out);
        }
    }
    return ids;
}

Es muy importante que abras la conexión.
Un List o ArrayList se manejan muy similar a los arreglos, con la diferencia que los arreglos les debes definir el tamaño antes de usarlos.
Un List o ArrayList pueden crecer dinámicamente.

Cualquier duda solo pregunta.
Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alejo
Val: 12
Ha disminuido su posición en 24 puestos en Java (en relación al último mes)
Gráfica de Java

Traer datos de una columna - Duda.

Publicado por Alejo (6 intervenciones) el 20/05/2020 19:59:09
Billy, genial. Todos estos tips y el código, me viene como anillo al dedo para aprender, gracias.
Lo apliqué en mi proyecto, probé de dos formas distintas y ambas desembocan en la misma situación. El ArrayList captura sólo el primer resultado de la columna "id_tab". Lo que necesito es que guarde en este caso, las dos IDs de la columna, las cuales, pertenecen al usuario "1"

DEBUG:

recolects
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Traer datos de una columna - Duda.

Publicado por Billy Joel (875 intervenciones) el 20/05/2020 20:25:12
ufff disculpas, se me ha pasado.
En la línea 18 hay un if. cambialo por while

Acá te dejo el código corregido:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public List<Integer> getTabIds(Users getParamsUser) {
    PreparedStatement preparedStatment = null;
    ResultSet resultSet = null;
    //------ Variables ------//
    String sql_query;
    int id_user = getParamsUser.getUser_id();
    //---- Process ----//
    /**
     * TODO: se debe obtener una conexión abierta válida para este objeto
     */
    Connection cn;
    List<Integer> ids = new ArrayList();
    try {
        sql_query = "SELECT id_tab FROM tabs WHERE id_user = ?";
        preparedStatment = cn.prepareStatement(sql_query);
        preparedStatment.setObject(1, id_user);
        resultSet = preparedStatment.executeQuery();
        while (resultSet.next()) {
            ids.add(resultSet.getInt(1));
        }
    } catch (SQLException ex) {
        ex.printStackTrace(System.out);
    } finally {
        //Despues de cada consulta se debe cerrar la conexión a la base de datos
        try {
            if (cn != null && !cn.isClosed()) {
                cn.close();
            }
        } catch (SQLException ex) {
            ex.printStackTrace(System.out);
        }
    }
    return ids;
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alejo
Val: 12
Ha disminuido su posición en 24 puestos en Java (en relación al último mes)
Gráfica de Java

Traer datos de una columna - Duda.

Publicado por Alejo (6 intervenciones) el 20/05/2020 21:08:08
Billy, agradecido. Gracias por la ayuda, ya todo funciona como debería, ahora a seguir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Traer datos de una columna - Duda.

Publicado por Billy Joel (875 intervenciones) el 20/05/2020 21:10:40
Cualquier duda solo pregunta!

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar