使用PreparedStatement将行插入数据库

我想使用PreparedStatement在表中插入一行。 该表有3列(int,String,String)。 问题是int列是AUTO_INCREMENT,所以我想将该变量留空并让数据库完成该工作(它是一个id)。 虽然没有发现如何做到这一点!

这是一个MySQL数据库。

这相对简单,只需从列列表中省略自动增量列:

insert into mytbl(str1, str2) values (?, ?) 

准备语句,设置两个参数,然后以非查询模式执行。

只需在sql查询字符串中提供String条目,数据库就会填充auto_increment字段:

 String insertSQL = "INSERT INTO MyTable (StrCol1, StrCol2) VALUES (?, ?)"; PreparedStatement preparedStatement = dbConnection.prepareStatement(insertSQL); preparedStatement.setString(1, "Val 1"); preparedStatement.setString(2, "Val 2"); preparedStatement.executeUpdate(); 

如果该字段已经是自动增量,则仅填充其他两个字段就足够了。 这是一个例子

 String sql = "INSERT INTO mytableName(" + "fistStringColumnName," + "secondStringColumnName) " + "VALUES(?,?)"; try (PreparedStatement pstmt = connection.prepareStatement(sql)) { // Set the values pstmt.setString(1, "firstString"); pstmt.setString(2, "secondString"); // Insert pstmt.executeUpdate(); } catch (SQLException e) { } catch (FileNotFoundException e) { }