如何通过java连接正确使用MySQL“desc table”
我实际上正在构建一个项目,其中mysql数据库中的表名显示在java的列表中。 用户从列表中选择一个表,并使用“desc tablename”命令指定该表的描述。 问题是,它应该得到表中的每个字段,但它只得到第一个字段。下面我已经解释了更多,但首先是我的代码-:
try {
int rowCount = tableModel.getRowCount();
for (int i = 0; i < rowCount; i++) {
tableModel.removeRow(i);
}
String z = jList2.getSelectedValue().toString();
try {
Class.forName("java.sql.DriverManager");
} catch (ClassNotFoundException e) {
timeget();
jTextArea4.append(now + ": " + "/ Failed in getting Driver \n Error Message: " + e.getMessage() + " / \n \n");
JOptionPane.showMessageDialog(this, e.getMessage());
}
DriverManager.getConnection("jdbc:mysql://localhost:" + GlobalParams.portvar + "/", "" + k, "" + j);
stmnt = (Statement) con.createStatement();
String query = "desc " + z;
jTextArea5.append(now + ": " + "/ desc " + z + "; / \n \n");
ResultSet rs = stmnt.executeQuery(query);
String[] cnames = {"Field", "Type", "Null", "Key", "Extra"};
tableModel.setColumnIdentifiers(cnames);
jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
jTable1.setFillsViewportHeight(true);
if (rs.next()) {
String field = rs.getString("Field");
String type = rs.getString("type");
String nullinfo = rs.getString("null");
String key = rs.getString("key");
String extra = rs.getString("extra");
tableModel.addRow(new Object[]{field, type, nullinfo, key, extra});
}
catch(SQLException e){//some blabla}
现在详细说明问题->; 比如说,从列表中,我选择了一个名为“city”的表。最初,它有四个字段——ID、姓名、人口和国家代码。但在我的jTable中,只有“ID”出现
密码
int rowCount = tableModel.getRowCount();
for (int i = 0; i < rowCount; i++) {
tableModel.removeRow(i);
}
。。。从列表中选择新表时,只需删除旧表的字段。 希望我能澄清我的问题
请帮忙。谢谢
# 1 楼答案
问题就在这里
你不能继续循环
将if循环更改为while循环