如何在java中将值插入数据库

时间:2013-08-31 11:05:20

标签: java sql database jdbc insert

String sql = "INSERT INTO user (userid, username, password, lastname, firstname, "
            + "middlename, birthdate, gender, address, email, contact, "
            + "marital_status, religion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";
    try {
        pst = conn.prepareStatement(sql);

        pst.setString(1, username);
        pst.setString(2, password.toString()); //chartype
        pst.setString(3, lastName);
        pst.setString(4, firstName);
        pst.setString(5, middleName);
        pst.setString(6, birthdate);
        pst.setString(7, gender1);
        pst.setString(8, address1);
        pst.setString(9, email1);
        pst.setLong(10, mobile);
        pst.setString(11, status1);
        pst.setString(12, religion1);
        pst.execute();
    }catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }

我有13列,userid是自动增量。但我不知道你怎么不需要把用户ID。

我收到了这个错误。我想要自动增量ID。所以没必要输入吗?

Column count doesn't match value count at row 1

4 个答案:

答案 0 :(得分:1)

删除" userid"如果您不打算为其提供值,请从列表中删除。

即。 INSERT INTO user (username, password, ...)

答案 1 :(得分:1)

您在INSERT中指定了13列,但VALUES子句中只有12个占位符。列数和值必须匹配。您需要从userid中删除INSERT列,或者需要添加额外的占位符(或文字值)来设置其值。

答案 2 :(得分:0)

您无法将值插入AutoInc列,因此只需将其从查询中删除:

insert into user(userName, password,...) values (and your values here)

答案 3 :(得分:0)

您的数据库是MySQL吗?如果是,您可以参考这篇关于将值插入自动增量列的帖子。 How to insert data to MySQL having auto incremented primary key?