JTable缺少最后一列名称

时间:2015-10-20 07:29:56

标签: java mysql sql-server database jtable

我创建了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);
    }

}

2 个答案:

答案 0 :(得分:0)

我认为你应该使用

pst.setString(1, "%"+name.getText()+"%");

答案 1 :(得分:0)

创建预准备语句时?用于替换绑定变量。您没有用作绑定变量的值无法以您希望的方式使用,在本例中使用like。你很可能会经历这个PreparedStatement IN clause alternatives?

您的问题很容易被重复Using “like” wildcard in prepared statement