PreparedStatement を使用してテーブルに行を挿入したいと考えています。テーブルには 3 つの列 (int、String、String) があります。問題は、int列がAUTO_INCREMENTであるため、その変数を空のままにして、データベースにその仕事を任せたいということです(これはIDです)。ただし、これを行う方法がわかりませんでした!
MySQLデータベースです。
PreparedStatement を使用してテーブルに行を挿入したいと考えています。テーブルには 3 つの列 (int、String、String) があります。問題は、int列がAUTO_INCREMENTであるため、その変数を空のままにして、データベースにその仕事を任せたいということです(これはIDです)。ただし、これを行う方法がわかりませんでした!
MySQLデータベースです。
SQL クエリ文字列に文字列エントリを指定するだけで、データベースは 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();
これは比較的単純です。列リストから autoincrement 列を除外するだけです。
insert into mytbl(str1, str2) values (?, ?)
ステートメントを準備し、2 つのパラメーターを設定して、非クエリ モードで実行します。
フィールドがすでに自動インクリメントされている場合は、他の 2 つのフィールドだけを入力するだけで十分です。ここに例があります
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) {
}