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 显示我的数据库,我在互联网上找到了它,它不是我的,它是工作的。但现在我不知道如何向JTable和数据库添加行,我找到了很多网站但没有用(PreparedStatement,executeUpdate...)。谁能帮我解决这个问题,因为我刚刚学到。谢谢 !
这是一个糟糕的例子:
- 变量名称不应以大写字符开头。
- 将数组大小硬编码为支持 10,000 行是错误的方法。您还可以使用动态的 Vector。
相反,请查看Table From Database Example
代码发现于数据库中的表 https://tips4java.wordpress.com/2009/03/12/table-from-database/。此示例使用的向量将根据结果集中找到的行数而增长。
我不知道如何向 JTable 和数据库添加行
您可以使用addRow(...)
的方法DefaultTableModel
动态添加数据。阅读 API 或在论坛/网络上搜索使用 addRow(...) 方法的示例。
对于数据库插入,您可以从以下教程开始JDBC 数据库访问 http://docs.oracle.com/javase/tutorial/jdbc/index.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)