2016-06-06 2 views
-1

У меня есть jtable в моем рабочем приложении netbeans, которое я хочу заполнить из базы данных.Как получить данные базы данных в jtable

Я хотел бы узнать код привязки и как обновить таблицу после вставки/удаления некоторой записи.

У меня есть кнопка, которая показывает кадр включен JTable actioncommand ниже

try{ 
    Class.forName("Mydrivername").newInstance(); 
    Connection con=DriverManager.getConnection(connectionurl,id,password); 
    PreparedStatement ps=(PreparedStatement) con.preparedStatement("select * from datavasetablename"); 
    ResultSet rs= ps.executeQuery(); 
    while(rs.next()){ 
     row[0]= rs.getInt("Id"); 
     row[1]= rs.getString("name"); 
     mytablemodel.addRow(row); 
     frame.show(); 
    } 
} catch(Exception e){ 

} 

Когда я первый показать кадр все нормально, но когда я скрыть рамку и показать его снова все прошло полностью.

+0

Любая база данных? На это довольно сложно ответить. –

+0

Вы уже извлекли данные из базы данных? Вы просто хотите отобразить его, @Akanksha Dixit? – ClayKaboom

+0

У меня есть btn, который показывает фрейм, включенный jtable, actioncommand ниже -try {Class.forName ("Mydrivername"). NewInstance(); Соединение con = DriverManager.getConnection (connectionurl, id, password); PreparedStatement ps = (PreparedStatement) con.preparedStatement ("select * from datavasetablename"); ResultSet rs = ps.executeQuery(); while (rs.next()) {row [0] = rs.getInt ("Id"); row [1] = rs.getString ("name"); mytablemodel.addRow (строка); frame.show();}} catch (Exception e) {}, когда я впервые показываю фрейм, все в порядке, но когда я скрываю рамку и rshow ее снова, все закончилось –

ответ

0

Насколько я понял, код где экземпляр row объект должен быть также помещен внутрь заявление while(rs.next()){, а затем оно должно работать.

Если вы используете тот же экземпляр, то все элементы в списке будут иметь те же свойства. Например:

try{ 
    Class.forName("Mydrivername").newInstance(); 
    Connection con=DriverManager.getConnection(connectionurl,id,password); 
    PreparedStatement ps=(PreparedStatement) con.preparedStatement("select * from datavasetablename"); 
    ResultSet rs= ps.executeQuery(); 
    while(rs.next()) 
    { 
     row = new YourRowType();// Change this line to the correct type of the row object 
     row[0]= rs.getInt("Id"); 
     row[1]= rs.getString("name"); 
     mytablemodel.addRow(row); 
     frame.show(); 
    } 
    } 
    catch(Exception e) 
    { 

    } 
+0

Thankx для вашего руководства. Успешно создан метод, который заполняет все мои jtable из разных таблиц базы данных. Thankx снова –

0

в каждой вставки-удаления я перезагружать все с

public Object[][] getDatos() { 
    int registros = 0; 
    //We first perform the COUNT to know the size of the matrix 
    try { 
     PreparedStatement pstm = con.getConnection().prepareStatement("" 
       + "SELECT count(idDocente) as total FROM docente;"); 
     ResultSet res = pstm.executeQuery(); 
     res.next();//registros es igual al numero de materiales en la BD 
     registros = res.getInt("total"); 
     res.close(); 
    } catch (SQLException e) { 
     System.out.println(e); 
    } 
    //declaramos el tamaño de la matriz[numero de materiales][cantidad de atributos] 
    Object[][] fila = new String[registros][6]; 

    try { 
     PreparedStatement pstm = con.getConnection().prepareStatement("SELECT " 
       + " codigo,nombre,apaterno,amaterno,telefono,correoElectronico " 
       + " FROM docente" 
       + " ORDER BY idDocente;"); 
     ResultSet res = pstm.executeQuery(); 
     int i = 0; 
     while (res.next()) { 
      String estCodigo = res.getString("codigo"); 
      String estNombre = res.getString("nombre"); 
      String estCantidad = res.getString("apaterno"); 
      String estDescripcion = res.getString("amaterno"); 
      String estFecha = res.getString("telefono"); 
      String estISBN = res.getString("correoElectronico"); 

      fila[i][0] = estCodigo; 
      fila[i][1] = estNombre; 
      fila[i][2] = estCantidad; 
      fila[i][3] = estDescripcion; 
      fila[i][4] = estFecha; 
      fila[i][5] = estISBN; 
      i++; 
     } 
     res.close(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    return fila; 
} 

Вид:

private void updateTabla() { 
    String[] columNames = {"Code:", "Name:", "Surname:", "Surname", "Cell phone:", "E-mail:"}; 
    dtMaterial = objCtrl.getDatos(); 
    DefaultTableModel datos = new DefaultTableModel(dtMaterial, columNames); 
    tblMaterial.setModel(datos); 
} 
+0

Thankx собирается попробовать. Но рядом с кодом я ничего не понял. Если вы можете сделать это простым английским языком –

+0

Эй, @ Даниэль Мера Альварес! Возможно, вам следует опубликовать код, который необходим для ответа на вопрос, написав его на английском языке, по крайней мере, в комментариях. Спасибо за вашу поддержку =) – ClayKaboom

Смежные вопросы