簡體   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