使用带有自动增量字段的预准备语句

Bis*_*128 0 java sql prepared-statement

我试图插入一个表,其主键设置为使用预准备语句自动递增.

表中的字段如下;

id,用户名,密码,电子邮件,名字,姓氏

我的代码是这样的

    String sql = "INSERT INTO Users values (?,?,?,?,?, ?)";
    RegistrationStatus status = null;
    Connection conn = null;
    PreparedStatement st = null;
    try {
        conn = source.getConnection();
        st = conn.prepareStatement(sql);
        st.setString(2, username);
        st.setString(3, password);
        st.setString(4, email);
        st.setString(5, firstname);
        st.setString(6, lastname);
        st.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

在我读过的地方,我们不应该包含第一个项目,因为数据库会处理它.对我而言,这种方法似乎失败了.

是否可以获得一些如何解决这个问题的帮助?

Lui*_*oza 5

将您的陈述更改为不包括id(或确切名称)列:

String sql = "INSERT INTO Users (username, password, email, firstname, lastname)"
    + " values (?,?,?,?,?)";
//...
st.setString(1, username);
st.setString(2, password);
st.setString(3, email);
st.setString(4, firstname);
st.setString(5, lastname);
//...
Run Code Online (Sandbox Code Playgroud)