私はJavaとPostgresを初めて使い慣れました。 データベースPostgresに日付を挿入するJDBC
私がレストランについて少しプロジェクトを持っていると私はstrukを持っている(ENG:法案)は、このようなテーブル:と私はこのような、そのテーブルに情報を挿入する方法があります:
public int insertBill(int id_karyawan, String tanggal, String waktu, int total) {
String SQL = "INSERT INTO struk(kode, id_karyawan, tanggal, waktu, total) VALUES (?,?,?,?,?)";
int id = 0;
try(Connection conn = connect(); PreparedStatement pstmt = conn.prepareStatement(SQL, Statement.RETURN_GENERATED_KEYS)) {
pstmt.setInt(1, 1);
pstmt.setInt(2, id_karyawan);
pstmt.setString(3, tanggal);
pstmt.setString(4, waktu);
pstmt.setInt(5, total);
int affectedRows = pstmt.executeUpdate();
if(affectedRows > 0) {
try(ResultSet rs = pstmt.getGeneratedKeys()) {
if(rs.next()) {
id = rs.getInt(1);
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
return id;
}
後に、その方法は、これに呼び出されます:
int billID = app.insertBill(1, "2017-09-24", "08:00:00", 150000);
問題は、私は日時については何も知りません。何をパラメータとして渡すべきですか?クエリがうまくいくようにどのような変数がありますか?私はそれが文字列を使用するいくつかの手掛かりを持っていることを探しました。私は現在、クエリメソッドでstringを使用しています。何かアドバイス?
実際の 'Date' /' Time'オブジェクトを使用して、JDBCドライバに処理させます – MadProgrammer
文字列をDate(SimpleDateFormat)に変換してからsetDateを使用します –
Java 8で最新のJDBCドライバ'LocalDate'や' LocalTime'のような 'java.time'オブジェクトを使い、' setObject'を使うべきです。 – RealSkeptic