Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动增量字段不显示在JTable first show中_Java_Mysql_Swing_Jdbc_Jtable - Fatal编程技术网

Java 自动增量字段不显示在JTable first show中

Java 自动增量字段不显示在JTable first show中,java,mysql,swing,jdbc,jtable,Java,Mysql,Swing,Jdbc,Jtable,我数据库中的表有5个字段。第一个字段(ID)是自动递增的 这是我添加新用户的表单: (未请求ID字段,因为它是自动递增的) 现在,当我添加一个新用户时,在第一次显示时,不显示中的ID字段 刷新后,显示ID:(数字24) 这是我的代码: public class UserPage extends JFrame implements ActionListener { ... public void addAction() { AddUserDialog UserDialog =

我数据库中的表有5个字段。第一个字段(ID)是自动递增的

这是我添加新用户的表单: (未请求ID字段,因为它是自动递增的)

现在,当我添加一个新用户时,在第一次显示时,不显示中的
ID
字段

刷新后,显示ID:(数字24)

这是我的代码:

public class UserPage extends JFrame implements ActionListener {
...
    public void addAction() {
    AddUserDialog UserDialog = new AddUserDialog(this);
    Object[] myRow = new Object[]{UserDialog.getfName(), UserDialog.getlName(), UserDialog.getGender(), UserDialog.getDate()}; // how get ID here?
    if (addQuery(UserDialog.getfName(), UserDialog.getlName(), UserDialog.getGender(), UserDialog.getDate())) {
        model.addRow(myRow);
    }
}
    public boolean addQuery(String fname, String lname, String gender, String date) {
    try {
        Connection con;
        Statement statement;
        String query = "insert into UserTable(FirstName,LastName,Gender,Date) " +
                "values ( '" + fname + "' , '" + lname + "' , '" + gender + "', '" + date + "' ) ";
        con = DriverManager.getConnection(...);
        statement = con.createStatement();
        if (statement.execute(query)) {
            return true;
        }

    } catch (SQLException sqle) {
        sqle.printStackTrace();
        return false;
    }
    return true;
}
}
如何在第一次显示时显示ID? 谢谢

这是:

    public String addQuery2(String fname, String lname, String gender, String date) throws Exception {
    String getMe = null;
    ResultSet res = null;
    try {
        Connection con;
        PreparedStatement pStatement;
        String query = "insert into UserTable(FirstName,LastName,Gender,Date) " +
                "values ( '" + fname + "' , '" + lname + "' , '" + gender + "', '" + date + "' ) ";
        con = DriverManager.getConnection(...);
        pStatement = con.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
        pStatement.execute(query)
        res = pStatement.getGeneratedKeys();
            getMe = String.valueOf(res.getInt(1));

    } catch (SQLException sqle) {
        sqle.printStackTrace();
    }
    return getMe;
}

这很容易看出来。。您正在添加您创建的且没有
id
@nachokk的我的行。问题是如何将id放入myRow数组中?您应该使用适当的
TableModel
和适当的数据持有者,而不是使用Object[]作为数据持有者。事实上,您必须创建一个新的选择,因为您没有id。@nachokk我在另一个类中保存数据和列名一个向量。如果建议
vector
过时,您应该扩展
AbstractTableModel
并使用
List
,这样会更好。