initComponents(); try { ResultSet res = statement.executeQuery("SELECT * FROM banh"); ResultSetMetaData RSMD = res.getMetaData(); NumberOfColumns = RSMD.getColumnCount(); AttributeNames = new String[NumberOfColumns]; for(int i=0;i<NumberOfColumns;i++) AttributeNames[i]=RSMD.getColumnName(i+1); MyArray=new Object[10000][NumberOfColumns]; int R=0; while(res.next()) { for(int C=1; C<=NumberOfColumns;C++) MyArray[R][C-1]=res.getObject(C); R++; } res.close(); NumberOfRows=R; Object[][] TempArray=MyArray; MyArray=new Object[NumberOfRows][NumberOfColumns]; for(R=0;R<NumberOfRows;R++) for(int C=0;C<NumberOfColumns;C++) MyArray[R][C]=TempArray[R][C]; TableData.setModel(new MyTableModel()); TableData.setVisible(true); } catch(Exception e) { e.printStackTrace(); } public void initComponents() { model = new DefaultTableModel (new Object [][] { {null}, {null}, {null}, {null} }, new String [] {""} ) { Class[] types = new Class [] {java.lang.Object.class}; boolean[]canEdit=new boolean[]{false}; public Class getColumnClass(int columnIndex) { return types [columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }; TableData.setModel(model); JScrollPane ScrollPane1 = new JScrollPane(TableData); ScrollPane1.setBounds(30,170,950,290); Frame.add(ScrollPane1,BorderLayout.CENTER); }
我通过这种方式将数据库显示给JTable,我在Internet上找到了它,这不是我的,并且可以正常工作。但是现在我不知道如何向JTable和数据库中添加行,我发现了很多网站,但没有用(PreparedStatement,executeUpdate …)。有人可以帮助我吗,因为我刚刚学过。谢谢 !
那是一个不好的例子:
相反,请检查“ 从数据库表”中Table From Database Example找到的代码。本示例使用的Vector将根据ResultSet中找到的行数而增长。
Table From Database Example
我不知道如何向JTable和数据库添加行
您可以使用的addRow(...)方法DefaultTableModel动态添加数据。阅读API或在论坛/网络上搜索使用addRow(…)方法的示例。
addRow(...)
DefaultTableModel
对于数据库插入,您可以从JDBC Database Access教程开始。