PreparedStatementの使用を開始すると、 SQL インジェクションが防止されます。詳細については、この SO Q&Aをお読みください。
次のようなことができます:
String sql ="Select * from Payment where Payment_Date between ? and ? ";
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setDate(1, date_1 );
pstmt.setDate(2, date_2 );
// date_1 and date_2 objects should be of type java.sql.Date
メソッドで正しいパラメータ タイプを設定していることを確認してくださいsetXXX()
。のデータ型がPayment_Date
isおよび関連する型である場合は、setDate()メソッドでjava.sql.DateDATE
を設定する必要があることに注意してください。列のデータ型が の場合、java.sql.TimestampおよびsetTimestamp()メソッドを使用します。TIMESTAMP
脚注:-
you にjava.util.Date
オブジェクトがある場合は、それを次のように変換できますjava.sql.Date
。
java.sql.Date sqlDateObject = new java.sql.Date(utilDateObject.getTime());