Java - Como borrar en cascada en una tableView?

 
Vista:
Imágen de perfil de Luis Mejia

Como borrar en cascada en una tableView?

Publicado por Luis Mejia (1 intervención) el 25/05/2016 02:46:31
El caso es este soy un estudiante de programación de java y tengo un proyecto de una base de datos de SQL Server conectada a mi aplicación que muestra los datos en una tableView y tiene las opciones de eliminar y agregar.
El problema es que nos dijo que el eliminar debía ser en cascada, es decir borrado múltiple con el mouse y la verdad no se como seleccionar varias cosas a la vez en una tableView.
Si alguien me pudiera ayudar se lo agradecería muchísimo.
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
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como borrar en cascada en una tableView?

Publicado por Yamil Bracho (2315 intervenciones) el 25/05/2016 04:13:54
Cuando dices TableView te refieres a que componente/control ?
Lo mas probable es que la data que este eliminando sea de una tabla que tenga hijos y para eliminarlo debes eliminar primero sus hijos y luego el item (padre). Por ejemplo si tienes una tabla que es Departamento y otra tabla que es Trabajador, donde tienes la relacion 1 a muchos de Departamento a Trabajador, es decir,un Departamento puede tener varias Personas.
Para eliminar un Departamento, debes eliminar primero las Personas de ese Departamento...
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 borrar en cascada en una tableView?

Publicado por David (1 intervención) el 25/05/2016 17:26:55
Ejemplo:

Métodos:

//Llenamos la Jtable con registros de la base de datos
//Utilizaremos un jcheckbox para seleccionar los registros que queremos eliminar

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
private static void PopulateDatos() {
 
        tablitita.setModel(new DefaultTableModel());
        DefaultTableModel model = new DefaultTableModel() {
 
            @Override
            public Class<?> getColumnClass(int column) {
                switch (column) {
                    case 0:
                        return Boolean.class;
                    case 1:
                        return Integer.class;
                    case 2:
                        return String.class;
                    case 3:
                        return String.class;
                    case 4:
                        return String.class;
                    case 5:
                        return String.class;
                    case 6:
                        return String.class;
                    case 7:
                        return String.class;
                    default:
                        return String.class;
                }
 
            }
 
        };
        tablitita.setModel(model);
        model.addColumn("Selecciona");
        model.addColumn("ID");
        model.addColumn("IP");
        model.addColumn("SO");
        model.addColumn("kernel");
        model.addColumn("tipo");
        model.addColumn("jdk");
        model.addColumn("DB");
        try {
            contx = ConectaDB.obtenerConexion();
            pstm = contx.prepareStatement(CON);
            res = pstm.executeQuery();
            int row = 0;
            while ((res != null) && (res.next())) {
                model.addRow(new Object[0]);
                model.setValueAt(false, row, 0); // Checkbox
                model.setValueAt(res.getInt(1), row, 1);
                model.setValueAt(res.getString(2), row, 2);
                model.setValueAt(res.getString(3), row, 3);
                model.setValueAt(res.getString(4), row, 4);
                model.setValueAt(res.getString(5), row, 5);
                model.setValueAt(res.getString(6), row, 6);
                model.setValueAt(res.getString(7), row, 7);
                row++;
            }
        } catch (SQLException e) {
            System.out.println("Error: " + e.getLocalizedMessage());
        } finally {
            ConectaDB.cerrarPreparaStatement(null);
        }
 
    }

//Metodo para eliminar registros

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void BorrarDatos(int CustomerID) {
        try {
            cont = ConectaDB.obtenerConexion();
            ps = cont.prepareStatement(CONS);
            ps.setInt(1, CustomerID);
            ps.executeUpdate();
            ConectaDB.cerrarCommit(cont);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getLocalizedMessage());
            JOptionPane.showMessageDialog(null, e.getStackTrace());
            System.exit(1);
        } finally {
            ConectaDB.cerrarPreparaStatement(ps);
            ConectaDB.cerrarResultSet(resu);
            ConectaDB.cerrarPreparaStatement(ps);
        }
    }

//Accion del botón borrar registro(s)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void controlados() {
        borrar.addActionListener(e -> {
            Object[] options = {"Si", "No"};
            int n = JOptionPane.showOptionDialog(null, "Realmente quieres borrar el registro?", "Confirma para borrar?",
                    JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
                    null, options, options[1]);
            if (n == 0) {
                for (int i = 0; i < tablitita.getRowCount(); i++) {
                    Boolean chkDel = Boolean.valueOf(tablitita.getValueAt(i, 0).toString());
                    if (chkDel) {
                        int valor = (int) tablitita.getValueAt(i, 1);
                        System.out.println("-------------------------____________> " + valor);
                        BorrarDatos(valor);
 
                    }
 
                }
                JOptionPane.showMessageDialog(null, "Borrado completo");
                PopulateDatos();
            }
        }
        );
    }



42dadc81df0159ced94e39fef72cbd0eo

53911e4b7fdc0bf615d09fc64c7553abo

8d7e5265418ed55480070bc0b50aef34o

9bde63395f0148cda3dd2fa36f7e3e8ao

67c3a53f84b8f6bc00e388144161fd40o
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