Java - Consulta a base de datos mediante un arreglo

 
Vista:

Consulta a base de datos mediante un arreglo

Publicado por LeonardoTP| (2 intervenciones) el 27/03/2020 03:51:54
Hola amigos, buenas noches, estoy haciendo un proyecto escolar y pues no tengo mucha experiencia en java.
Lo que requiero hacer es consultar a una tabla de base de datos. esta consulta será general para que me traiga todos los datos.
Dicha consulta la quiero meter en un arreglo para que el programa pueda comparar los caracteres de un String, validar si son iguales a los que hay en la tabla de la base de datos.
Hasta ahorita he hecho la clase para hacer la consulta a la base de datos.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package clases;
 
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
 
public class ascii {
     private String id_ascii;
    private String caracter;
    private String valor;
 
    public ascii(String id_ascii, String caracter, String valor){
        this.id_ascii = id_ascii;
        this.caracter = caracter;
        this.valor = valor;
    }
 
    public ascii(String string){
 
    }
 
    public String getIDascii(){
        return id_ascii;
    }
 
    public void setIDascii(String id_ascii){
        this.id_ascii = id_ascii;
    }
 
    public String getCaracter(){
        return caracter;
    }
 
    public void setCaracter(String caracter){
        this.caracter = caracter;
    }
 
    public String getValor(){
        return valor;
    }
 
    public void setValor(String valor){
        this.valor = valor;
    }
 
    private static com.mysql.jdbc.Connection conn;
    private static final String driver = "com.mysql.jdbc.Driver";
    private static final String user="root";
    private static final String password="";
    private static final String url="jdbc:mysql://localhost:3306/datagrama";
 
    public void consultar_serviciotos(JComboBox<cargar_datosservicio> cbox_tos){
        java.sql.Connection conectar=null;
 
        String SSQL = "SELECT * FROM ascii ORDER BY id_ascii ASC";
 
        try{
            Class.forName(driver);
            conn = (com.mysql.jdbc.Connection) DriverManager.getConnection(url, user, password);
 
            PreparedStatement pst = conn.prepareStatement(SSQL);
 
            ResultSet result = pst.executeQuery(SSQL);
 
            while(result.next()){
                cbox_tos.addItem(
                    new cargar_datosservicio(
                        result.getString("id_ascii"),
                        result.getString("caracter"),
                        result.getString("valor")
                    )
                );
            }
        }catch(ClassNotFoundException | SQLException e){
            JOptionPane.showMessageDialog(null, e);
        }finally{
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException ex) {
                    JOptionPane.showMessageDialog(null, ex);
                }
            }
        }
    }
 
    @Override
    public String toString(){
        return caracter;
    }
}
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 Franklin
Val: 456
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Consulta a base de datos mediante un arreglo

Publicado por Franklin (179 intervenciones) el 27/03/2020 13:09:40
Antes de..., si usas PreparedStatement deber

en el metodo puedes devolver un ArrayList<ascii> en cada vuelta del While

1
2
3
4
5
6
7
8
9
10
11
ArrayList<ascii> lista = new ArrayList();
while(result.next()){
lista.add(new ascii(
result.getString("id_ascii"),
                        result.getString("caracter"),
                        result.getString("valor")
);
 
}
 
return lista;

ya luego al recibir tu Arreglo lo recorres con un
for(ascii a : lista)
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

Consulta a base de datos mediante un arreglo

Publicado por LeonaroTP (2 intervenciones) el 29/03/2020 20:32:55
Buenas Franklin
de acuerd a lo que dices cambié lo que me proporcionaste a lo que tenía en el método de "consultar_serviciotos"
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
35
36
public void consultar_serviciotos(){
    java.sql.Connection conectar=null;
 
    String SSQL = "SELECT * FROM ascii ORDER BY id_ascii ASC";
 
    try{
        Class.forName(driver);
        conn = (com.mysql.jdbc.Connection) DriverManager.getConnection(url, user, password);
 
        PreparedStatement pst = conn.prepareStatement(SSQL);
 
        ResultSet result = pst.executeQuery(SSQL);
 
        ArrayList<ascii> lista = new ArrayList();
 
        while(result.next()){
        lista.add(new ascii(
        result.getString("id_ascii"),
                                result.getString("caracter"),
                                result.getString("valor")
        );
 
        }
        return lista;
    }catch(ClassNotFoundException | SQLException e){
        JOptionPane.showMessageDialog(null, e);
    }finally{
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(null, ex);
            }
        }
    }
}
pero en donde debo de ingresar el ArrayList<ascii> lista = new ArrayList();? debe de estar como parametro del metodo?
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 Franklin
Val: 456
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Consulta a base de datos mediante un arreglo

Publicado por Franklin (179 intervenciones) el 30/03/2020 14:06:51
tu metodo está definido como:

public void consultar_serviciotos(){

Le colocas que retorne al final un Objeto de tipo ArrayList

1
2
3
4
5
6
7
public ArrayList consultar_serviciotos(){
.//
.// AQUI TODO TU CODIGO
.//
 
return lista;
}

entonces cuando llames a dicho metodo podrías usar la siguiente sentencia.

1
ArrayList<ascii> arregloReceptor = (ArrayList) consultar_serviciotos().clone();

y para recorrerlo puedes:

1
2
3
4
5
6
7
8
9
10
for(ascii asc : arregloReceptor ){
// Luego para tomar los valores usas el objeto "asc" y usas sus getters y setters, ya que es un objeto tipo "ascii"
}
 
//en caso de que necesites controlar el for (en caso de que busques 1 codigo, o un resultado en especifico)
//usas
 
for(int i=0; i<arregloReceptor.size();i++){ // de esta manera controlas cada iteracion con i
 
}
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