【发布时间】:2014-07-16 20:33:43
【问题描述】:
我正在尝试使用准备好的语句插入主键设置为自动递增的表。
表格中的字段如下;
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();
我在哪里读到我们不应该包含第一项,因为数据库会处理它。对我来说,这种方法似乎失败了。
能否就如何解决这个问题获得一些帮助?
【问题讨论】:
-
不包含 ?对于 PK id 参数。您的插入 sql 中应该只有 5 个问号。
-
@NathanHughes 您还应该指定 ID 列也不会在 SQL 插入语句中设置。
标签: java sql prepared-statement