Удалять линию jTable с id линии

у меня есть jTable я могу удалять линию без проблемы со следующей функцией:

int fila = tabla.getSelectedRow();
        if (fila >= 0) {
            m.removeRow(fila);
        }

с этим я удаляю отборную линию нет проблемы, проблема состоит в том, что не, как идентифицирование линии, в которой является помещенным реестр "Даниэль", а именно у меня есть таблица со следующим:

ID|Nombre|Direccion
1|Carlos|Av.las manzanas
2|Maria|Av.las100
3|Daniel|Av.Loque sea

а именно я хочу удалить линию, в которой находится Id3, но этот пойдите это id, у которого есть имя "Даниэль "в базе данных, а именно, что в таблице число линии было бы номером 2,

возможно удалять линию показывая ему стоимость, что-то подобное в sql, но не, как он мог бы делать это в java

Delete fila where idPersona=1; 
0
задан 02.09.2016, 19:27
2 ответа

Предполагая [один 111] или так называемый дериват m mГ©todo управляющий удалять линии, которые содержат определенный string serГ - во что-то asГ-:

public void borrarFilasCon(String nombre)
 {
    for (int f = 0; f < m.getRowCount(); f++)
    {
      for(int c = 0; c < m.getColumnCount(); c++)
      {
        if (m.getValueAt(f, c).equals(nombre)) 
        {
          m.removeRow(f);

        }
      }
    }
 }
1
ответ дан 24.11.2019, 13:30
  • 1
    друг большое спасибо из-за Вашего ответа справедливый то, что нуждалось в привете –  jeancarlos733 03.09.2016, 03:52

Я первый рекомендовал бы тебе осуществлять 2 метода в твоем классе связи, которые подадут тебя многого. Методы getSt () и getCon () следующего способа:

public conexion(){
    try{
        Class.forName(drv);
        ct = DriverManager.getConnection(db, user, pass);
        st = ct.createStatement();
        //System.out.println("Conexión exitosa");
    }catch(Exception e){
        System.out.println("Error de conexión");
                    e.printStackTrace();
    }
}


public Statement getSt(){
    return st;
}

    public Connection getCon(){
            return ct;
}

Потом, где у тебя есть твоя таблица, ты можешь выполнять этот код

//Se crea una instancia de la clase conexion
conexion cc = new conexion();//al inicio de la clase

public void tuMetodo(){
int filsel = tuTabla.getSelectedRow();
    if(filsel == -1){
        JOptionPane.showMessageDialog(null, mensajeTabla);
    }else{
        try {
            TableModel m = tuTabla.getModel();
            for(int i = 0; i<m.getRowCount(); i++){
                //Se toman los datos de la tabla cliente
                int id = (int) m.getValueAt(filsel, 0);//suponiendo que el id lo muestras en la primera columna
                String sql="SELECT * FROM tablaBD WHERE ID = '" + id + "'";
                ResultSet rs = cc.getSt().executeQuery(sql);
                if(rs.next()){
                    String sql2="TU CONSULTA PARA ELIMINAR WHERE ID = '" + id + "'";
                    Statement st = cc.getCon().createStatement();
                    st.executeUpdate(sql2);
                    st.close();
                }
                m.removeRow(filsel);
            }//fin del for

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}//Fin de tuMetodo

Так ты удалишь, как твоей базы данных, так и твоего JTable, реестр, который ты выбрал

2
ответ дан 24.11.2019, 13:30