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

Como borrar en cascada en una tableView?

Publicado por Yamil Bracho (2072 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