Java - LEER INFORMACION DE UNA BD SQLSERVER

 
Vista:
Imágen de perfil de RUBEN
Val: 17
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

LEER INFORMACION DE UNA BD SQLSERVER

Publicado por RUBEN (8 intervenciones) el 03/10/2019 23:18:08
Hola buenas tardes, estoy eleboando una pequeña aplicación en java y SQLServer, la conexión ya la he realizado y funciona correctamente, sin embargo tengo una clase con un formulario en el cual capturo la información pero en el momento en que ejecuto el botón guardar registro, ahí precisamente no tengo idea de como enviar los datos a la BD SQL Server.

Tengo una clase Conexion que realiza la conexión a SQLServer; tengo otra clase donde capturo la información que necesito guardar en la BD. Mi solicitud de ayuda es como debo hacer para que al momento de ejecutar el boton guardar registro se enlaze con la clase Conexion y grabe los datos en la BD SQL Server. De antemano agradezco la ayuda que me puedan proporcionar.

P.D. ADJUNTO 6 IMAGENES DE LAS CLASE EquipoInstala y 1 de la Clase Conexion. Solo deseo saber en que parte de la clase EquipoInstala debo hacer la conexion con la clase Conexion y poder grabar los datos
ConexionClass
EquipoInstala1Class
EquipoInstala2Class
EquipoInstala3Class
EquipoInstala4Class
EquipoInstala5Class
EquipoInstala6Class
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

LEER INFORMACION DE UNA BD SQLSERVER

Publicado por Billy Joel (876 intervenciones) el 04/10/2019 17:12:07
De ante mano te digo que puedes hacer desde la línea 153.

Necesito saber como se llama la tabla, las columnas que tiene y cual es la llave primaria para hacerte el ejemplo completo.

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
0
Comentar
Imágen de perfil de RUBEN
Val: 17
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

LEER INFORMACION DE UNA BD SQLSERVER

Publicado por RUBEN (8 intervenciones) el 04/10/2019 17:24:48
Hola Billy buenos días, gracias por atender mi problema.

Tabla Instalacion19
(PK) IDI int Obligatorio
nsCpuI vch12 Permite valor Nulo
nsTecladoI vch12 Permite valor Nulo
ctTecladoI vch15 Permite valor Nulo
nsMouseI vch12 Permite valor Nulo
ctMouseI vch15 Permite valor Nulo
nsMonitorI vch12 Permite valor Nulo
nsImpresoraI vch12 Permite valor Nulo
pisoI vch1 Permite valor Nulo
usuarioI vch30 Permite valor Nulo

Esta es la tabla con sus campos tipo de datos y propiedades.
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

LEER INFORMACION DE UNA BD SQLSERVER

Publicado por Billy Joel (876 intervenciones) el 04/10/2019 18:21:24
Con los datos de tu clase Conexion la dejo así:
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
public class Conexion {
 
    public Conexion() {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace(System.out);
        }
    }
 
    public Connection getConnection() {
        Connection cn = null;
        try {
            String connectionURL = "jdbc:sqlserver://Administracion\\SQLEXPRESS2012:1433;databaseName=Recoleccion;user=conexionRecolecta;password=soporte2019";
            cn = DriverManager.getConnection(connectionURL);
        } catch (SQLException ex) {
            ex.printStackTrace(System.out);
        }
        return cn;
    }
 
    /**
     * Ejecuta una consulta a la base de datos. Devuelve una lista con el resultado de la consulta
     *
     * @param sqlCommand
     * @param params
     * @return
     */
    public List<String[]> executeQuery(String sqlCommand, String[] params) {
        Connection cn = null;
        PreparedStatement pst = null;
        ResultSet rs;
        List<String[]> rows = new ArrayList();
        try {
            cn = getConnection();
            if (cn == null) {
                System.out.println("Hubo un problema con la conexion a la base de datos");
                return null;
            }
            pst = cn.prepareStatement(sqlCommand);
            if (params != null && sqlCommand.contains("?")) {
                for (int i = 0; i < params.length; i++) {
                    pst.setObject(i + 1, params[i]);
                }
            }
            rs = pst.executeQuery();
            int cols = rs.getMetaData().getColumnCount();
            String[] row;
            while (rs.next()) {
                row = new String[cols];
                for (int i = 0; i < row.length; i++) {
                    row[i] = rs.getString(i + 1);
                }
                rows.add(row);
            }
        } catch (SQLException ex) {
            System.out.println("Error al ejecutar query: " + sqlCommand);
            ex.printStackTrace(System.out);
        } finally {
            try {
                if (pst != null && !pst.isClosed()) {
                    pst.close();
                }
                if (cn != null && !cn.isClosed()) {
                    cn.close();
                }
            } catch (SQLException ex) {
                ex.printStackTrace(System.out);
            }
        }
        return rows;
    }
 
    /**
     * Ejecuta un comnado a la base de datos
     *
     * @param sqlCommand
     * @param params
     * @return
     */
    public boolean executeStatement(String sqlCommand, String[] params) {
        Connection cn = null;
        PreparedStatement pst = null;
        int afectados = 0;
        try {
            cn = getConnection();
            if (cn == null) {
                System.out.println("Hubo un problema con la conexion a la base de datos");
                return false;
            }
            pst = cn.prepareStatement(sqlCommand);
            if (params != null && sqlCommand.contains("?")) {
                for (int i = 0; i < params.length; i++) {
                    pst.setObject(i + 1, params[i]);
                }
            }
            afectados = pst.executeUpdate();
        } catch (SQLException ex) {
            System.out.println("Error al ejecutar sentencia: " + sqlCommand);
            System.out.println("Parametros: ");
            if (params != null) {
                for (String param : params) {
                    System.out.println(param);
                }
            }
            ex.printStackTrace(System.out);
        } finally {
            try {
                if (pst != null) {
                    pst.close();
                }
                if (cn != null) {
                    cn.close();
                }
            } catch (SQLException ex) {
                ex.printStackTrace(System.out);
            }
        }
        return afectados > 0;
    }
 
    /**
     * Devuelve el proximo id de la tabla Instalacion19
     * @return 
     */
    public Integer getNextID_Instalacion19() {
        List<String[]> l = executeQuery("select max(IDI) from Instalacion19", null);
        if (l == null || l.isEmpty() || l.get(0)[0] == null) {
            return 1;
        } else {
            return Integer.parseInt(l.get(0)[0]) + 1;
        }
    }
}

Entonces a partir de la lína 153 de la clase EquipoInstalada colocas lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
Conexion con = new Conexion();
String [] params = {
    con.getNextID_Instalacion19().toString(),
    cpuIDato,
    tecladoIDato,
    mouseIDato,
    CTMouseIDato,
    monIDato,
    impIDato,
    pisoIDato,
    usuarIDato
};
con.executeStatement("insert into Instalacion19 (IDI, nsCpuI, nsTecladoI, ctTecladoI, nsMouseI, ctMouseI, nsMonitorI, nsImpresoraI, pisoI, usuarioI) values (?,?,?,?,?,?,?,?,?,?)", params);

Con eso debe ser suficiente para agregar un nuevo registro.
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 Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

LEER INFORMACION DE UNA BD SQLSERVER

Publicado por Billy Joel (876 intervenciones) el 04/10/2019 19:05:34
Supongamos que quieres consultar un registro o cargar una tabla (JTable)... bueno acá te dejo unos métodos...
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
public void verInstalacion19(String IDI){
    Conexion con = new Conexion();
    java.util.List<String[]> l = con.executeQuery("select nsCpuI, nsTecladoI, ctTecladoI, nsMouseI, ctMouseI, nsMonitorI, nsImpresoraI, pisoI, usuarioI from Instalacion19 where IDI = ?", new String[] {IDI});
    if(l != null && !l.isEmpty()){
        cpuI.setText(l.get(0)[0]);
        tecladoI.setText(l.get(0)[1]);
        CTTecladoI.setText(l.get(0)[2]);
        mouseI.setText(l.get(0)[3]);
        CTMouseI.setText(l.get(0)[4]);
        monI.setText(l.get(0)[5]);
        impI.setText(l.get(0)[6]);
        usuarI.setText(l.get(0)[7]);
        deptoI.setText(l.get(0)[8]);
        pisoI.setText(l.get(0)[9]);
    } else {
        JOptionPane.showMessageDialog(this, "Registro no encontrado", "Advertencia", JOptionPane.WARNING_MESSAGE);
    }
}
 
public void cargarTabla(JTable tabla){
    Conexion con = new Conexion();
    java.util.List<String[]> l = con.executeQuery("select IDI, nsCpuI, nsImpresoraI, pisoI, usuarioI from Instalacion19", null);
    String [] columnas = {"ID", "CPU", "Impresora", "Usuario"};
    String [][] data = new String[l.size()][columnas.length];
    for (int i = 0; i < data.length; i++) {
        data[i] = l.get(i);
    }
    tabla.setModel(new DefaultTableModel(data, columnas));
}

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
0
Comentar
Imágen de perfil de RUBEN
Val: 17
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

LEER INFORMACION DE UNA BD SQLSERVER

Publicado por RUBEN (8 intervenciones) el 04/10/2019 19:33:39
Nuevamente muchas gracias, efectivamente en algún momento tengo que hacer una consulta a la BD y con esto estará más que lista la aplicación.
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 RUBEN
Val: 17
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

LEER INFORMACION DE UNA BD SQLSERVER

Publicado por RUBEN (8 intervenciones) el 04/10/2019 19:31:54
Excelente, muchas gracias Billy con esto queda listo para dar de alta los datos en la tabla.
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