我正在尝试插入一个表,其主键设置为使用预准备语句自动递增。
表格中的字段如下;
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();
我已经读过,我们不应该包含第一个项目,因为数据库会处理它。对我而言,这种方法似乎失败了。
是否有可能获得一些如何解决这个问题的帮助?
答案 0 :(得分: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);
//...