我创建了jtable,但它没有显示最后一个列名称我不知道我在代码数据库中做错了有4列id,name,fathername和phone number但是jtable只显示3列。
public void load() {
try {
DBO db = new DBO();
con = db.connect();
String sql = "Select * from personinfo";
PreparedStatement pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
DefaultTableModel tb = new DefaultTableModel();
Vector col = new Vector();
for (int i = 1; i < count; i++) {
col.addElement(rsmd.getColumnName(i));
}
tb.setColumnIdentifiers(col);
while (rs.next()) {
Vector rows = new Vector();
for (int j = 1; j < rsmd.getColumnCount(); j++) {
rows.addElement(rs.getString(j));
}
tb.addRow(rows);
PersonTable.setModel(tb);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
}
答案 0 :(得分:0)
我认为你应该使用
pst.setString(1, "%"+name.getText()+"%");
答案 1 :(得分:0)
创建预准备语句时?用于替换绑定变量。您没有用作绑定变量的值无法以您希望的方式使用,在本例中使用like。你很可能会经历这个PreparedStatement IN clause alternatives?