1
こんにちは、日付型の型指定子を追加する方法がわからない、問題がありますか? %%を使用しようとしましたが、これはうまくいかないようです。SQL型指定子
public class OrderDB implements OrderDBIF {
@Override
public Order create(Date date, int totalAmount, String deliveryStatus, Date deliveryDate, int invoiceId, int customerId) throws SQLException {
String sql = String.format("INSERT INTO Order (date, totalAmount, deliveryStatus, deliveryDate, invoiceId, customerId) VALUES "
+ "('%%', '%d', '%s', '%%', '%d', '%d')", date, totalAmount, deliveryStatus, deliveryDate, invoiceId, customerId);
try (Connection conn = DBConnection.getInstance().getDBcon();
Statement stmt = conn.createStatement()) {
stmt.executeUpdate(sql);
} catch(SQLException e) {
e.printStackTrace();
throw e;
}
日付は文字列を使用して挿入されます(通常は「YYYY-MM-DD」)。ただし、パラメータ化されたクエリを使用する方法を学ぶ必要があります。そうすれば、パラメータはアプリケーションからデータベースへの型付けを処理します。 –
@GordonLinoffは言ったように、あなたの日付が特定の形式であることを確認する必要があります。 'deliveryDate'に指定された形式の値があることを確認する必要があります – Ravi
これはSQLインジェクションの問題です。 PreparedStatementを使用してクエリを実行します。 – Milaci