MySQL插入自动增量

时间:2014-06-09 13:36:47

标签: java mysql

我试图将我的应用程序中的一些数据插入到我的数据库中,但我不断收到下面所述的错误。

我的表中有4列,其中一列设置为自动递增。我怀疑是造成错误。

任何人都可以帮我解决这个问题吗?

表格列:

Id (auto increment), userID(generated from application), username, name

代码:

    String sql = "insert into details values (?, ?, ?)";

    PreparedStatement preparedStatement = connect.prepareStatement(sql);
    preparedStatement.setInt(1, userID);
    preparedStatement.setString(2, username);
    preparedStatement.setString(3, name);
    preparedStatement.executeUpdate(); 

    preparedStatement.executeUpdate(sql);

错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?, ?, ?)' at line 1

3 个答案:

答案 0 :(得分:2)

试试这个:

insert into details (userID, username, name) values (?, ?, ?)

答案 1 :(得分:0)

您必须将sql语句更改为:

String sql = "insert into details (userID, username, name) values (?, ?, ?)";

因为你没有添加表的所有属性,你必须说出你添加的参数。

答案 2 :(得分:0)

显然这只是一个简单的人为错误。写了两次执行语句。

    String sql = "insert into details values (?, ?, ?)";

    PreparedStatement preparedStatement = connect.prepareStatement(sql);
    preparedStatement.setInt(1, userID);
    preparedStatement.setString(2, username);
    preparedStatement.setString(3, name);

    preparedStatement.executeUpdate(); <-- Changed to preparedStatement.execute();

    preparedStatement.executeUpdate(sql); <-- Removed this line