繁体   English   中英

将准备好的语句与自动递增字段一起使用

[英]Using a prepared statement with auto increment field

我正在尝试插入到表中,该表的主键使用准备好的语句设置为自动递增。

表中的字段如下:

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();

在我读过的地方,我们不应该包括第一项,因为数据库会处理它。 对我来说,这种方法似乎失败了。

在解决该问题上是否可以获得帮助?

更改您的声明,使其不包含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);
//...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM