向 JTable 和数据库 (phpMyAdmin) 添加一行?
Add a row to JTable and Database (phpMyAdmin)?
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 ...)。任何人都可以帮助我解决这个问题,因为我刚刚学会了。谢谢!
这是一个糟糕的例子:
- 变量名不应以大写字符开头。
- 硬编码数组大小以支持 10,000 行是错误的方法。您还可以使用动态的 Vector。
改为查看 Table From Database 中的 Table From Database Example
代码。此示例使用 Vectors,它会根据在 ResultSet 中找到的行数增长。
I don't know how to add row to JTable and Database
可以使用DefaultTableModel
的addRow(...)
方法动态添加数据。阅读 API 或搜索 forum/web 以获取使用 addRow(...) 方法的示例。
对于数据库插入,您可以从 JDBC Database Access 上的教程开始。
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 ...)。任何人都可以帮助我解决这个问题,因为我刚刚学会了。谢谢!
这是一个糟糕的例子:
- 变量名不应以大写字符开头。
- 硬编码数组大小以支持 10,000 行是错误的方法。您还可以使用动态的 Vector。
改为查看 Table From Database 中的 Table From Database Example
代码。此示例使用 Vectors,它会根据在 ResultSet 中找到的行数增长。
I don't know how to add row to JTable and Database
可以使用
DefaultTableModel
的addRow(...)
方法动态添加数据。阅读 API 或搜索 forum/web 以获取使用 addRow(...) 方法的示例。对于数据库插入,您可以从 JDBC Database Access 上的教程开始。