Java - Como Leer Datos de una base de datos mySQL y ponerlos en un label o un jtext

 
Vista:

Como Leer Datos de una base de datos mySQL y ponerlos en un label o un jtext

Publicado por luis (2 intervenciones) el 21/12/2018 05:14:35
Hola bnas tardes nesecito crear un consecutivo de facturacion y nesecito primero que cuadno cargeu mi formulario de facturacion me cargue el ultimo valor ingresado; en una calse aparte llamada MtodosBD tengo algunos metoso de escritura q uso para guardar datos en la DB, alli tengo el siguiente codigo no se que hay de malo en el y como usarlo en mi formulario de facturacion.. gracias por su ayuda

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  class LeerTablaBaseDatos {
	public  void main (String args[]) {
		Connection conexion=null;
		Statement sql=null;
		ResultSet rs=null;
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			try {
			    conexion=DriverManager.getConnection("jdbc:odbc:Parqueadero");
				System.out.println("Conexión establecida");
				sql=conexion.createStatement();
				rs=sql.executeQuery("SELECT * FROM parqueadero");
				System.out.println("CONSULTA EJECUTADA");
 
				boolean r=rs.next();
				while (r) {
					System.out.println(rs.getString("consecutivo"));
					r=rs.next();
 
				}
 
				conexion.close();
				System.out.println("CERRADA LA CONEXION");
			} catch (SQLException e) {
				System.out.println
                           ("ERROR AL EJECUTAR LA SENTENCIA SQL");
		  	}
                        } catch (ClassNotFoundException e) {
			System.out.println("Error del controlador ");
		}
 
	}
 
}
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.667
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como Leer Datos de una base de datos mySQL y ponerlos en un label o un jtext

Publicado por Billy Joel (782 intervenciones) el 21/12/2018 15:58:45
Que tal Luis, mi primera recomendación es no utilizar select * from... ya que en la vida real los proyectos se manejan por mas de una persona y puede pasar que tengas a un administrador de base de datos, a programadores de otros proyectos y no siempre vas a tener control de lo que se encuentre en una tabla, entoces no sabemos si cambiarían el orden en que aparecen los campos de una tabla, dicho esto es mejor que tus programas ejecuten consultas de campos específicos como un select columna_1, columna_2, columna_3 from tabla....

He visto tu código le he hecho algunas modificaciones, parece que tienes el tema medio claro y supongo que lo entenderas:

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
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
 
public class LeerTablaBaseDatos {
 
    public void main(String args[]) {
        Connection conexion = null;
        Statement sql = null;
        ResultSet rs;
        List<String[]> resultado = new ArrayList();
        String[] nombreColumnas = null;
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            try {
                conexion = DriverManager.getConnection("jdbc:odbc:Parqueadero");
                System.out.println("Conexión establecida");
                sql = conexion.createStatement();
                rs = sql.executeQuery("SELECT * FROM parqueadero");
                int columnas = rs.getMetaData().getColumnCount();
                nombreColumnas = new String[columnas];
                for (int i = 0; i < nombreColumnas.length; i++) {
                    nombreColumnas[i] = rs.getMetaData().getColumnName(i + 1);
                }
 
                System.out.println("CONSULTA EJECUTADA");
//                boolean r = rs.next();
//                while (r) {
//                    System.out.println(rs.getString("consecutivo"));
//                    r = rs.next();
//                }
                while (rs.next()) {
                    String[] row = new String[columnas];
                    for (int i = 0; i < row.length; i++) {
                        row[i] = rs.getString(i + 1);
                    }
                    resultado.add(row);
                }
//                conexion.close();
//                System.out.println("CERRADA LA CONEXION");
            } catch (SQLException e) {
                System.out.println("ERROR AL EJECUTAR LA SENTENCIA SQL");
            } finally {
                try {
                    if (sql != null && !sql.isClosed()) {
                        sql.close();
                    }
                    if (conexion != null && !conexion.isClosed()) {
                        conexion.close();
                        System.out.println("CERRADA LA CONEXION");
                    }
                } catch (SQLException ex) {
                    ex.printStackTrace(System.out);
                }
            }
        } catch (ClassNotFoundException e) {
            System.out.println("Error del controlador ");
 
        }
 
        //A continuación mostramos los resultados de la consulta
        if (nombreColumnas != null && !resultado.isEmpty()) {
            //for (int i = 0; i < nombreColumnas.length; i++) {
            //    System.out.print(nombreColumnas[i] + "\t");
            //}
            for (String nombre : nombreColumnas) {
                System.out.print(nombre + "\t");
            }
            System.out.println();
 
            //for(String [] r : resultado){
            //    for (int i = 0; i < r.length; i++) {
            //        System.out.print(r[i] + "\t");
            //    }
            //    System.out.println();
            //}
            resultado.forEach(r -> {
                for (String s : r) {
                    System.out.print(s + "\t");
                }
            });
        }
    }
}

Al final del código se muestran los resultados de la consulta. He comentado la forma básica de mostrar los resultados y dejado una forma un tanto mas avanzada de hacerlo. Pero tu eres libre de hacerlo como quieras.


Espero haberte ayudado
Saludos!!
;-)
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

Como Leer Datos de una base de datos mySQL y ponerlos en un label o un jtext

Publicado por luis (2 intervenciones) el 31/12/2018 08:40:05
Billy Joel Gracias por responder mi duda, pues la verdad se menos de lo que tu crees del tema , pero sigo trabajando en ello y he logrado algo aunque use otras ideas mas sencillas para poderlo comprender..... bueno pues para poder entender bien lo he tratado de hacer por partes entonces primeo hice esta clase con lo cual he logrado hacer la consulta del mayor numero de una tabla llamada consecutivo y ponerlo en consola con un system of print... ahora lo que no se hacer y necesito ayuda es en lo siguiente... resulta que tengo un formulario donde tengo un jtxtfield y no he podido hacer que cuando se abra dicho formulario aparezca el resultado de esta consulta que ya realice , se que hay que usar métodos como txt_operacion.setText()... pero no lo tengo muy claro ...

esta es mi clase donde hago la conexion y la consulta y lo imprimo en consola... la duda es como hago para que en vez de que me salga en consola me salga cuando abro mi formulario operacion.java en mi campo de texto llamado txt_operacion?:

CLASE DE CONSULTA SQL:

public class Conecta_Pruebas {
public static void main(String[]args){
try {
// 1. CREAR CONEXION
Connection MiConexion=DriverManager.getConnection("jdbc:mysql://localhost:3306/parqueadero"+"?useTimezone=true&serverTimezone=UTC","root","Flatron869");

//2. CREAR OBJETO STATEMENT PARA PODER EJECUTAR LA CONSULTA
Statement mistatement=MiConexion.createStatement();

//3. EJECUTAR SQL
ResultSet miresultset=mistatement.executeQuery("select consecutivo from consecutivo where consecutivo=(select max(consecutivo) from consecutivo)");

//4. RECORRER O LEER EL RESULTSET

while(miresultset.next()){
System.out.println(miresultset.getInt("consecutivo")+1); //ESTO LO HICE PARA AUMENTAR EL CONSECUTIVO E IMPRIMIRLO
}
} catch (SQLException ex) {
Logger.getLogger(Conecta_Pruebas.class.getName()).log(Level.SEVERE, null, ex);
System.out.print(ex);
}

}

}


GRACIAS POR SU AYUDA
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