我是新來的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);
問題是,我沒有任何關於日期和時間的想法,我應該通過什麼作爲參數?什麼樣的變量,以便查詢工作良好?我搜索了一下它得到了一些使用字符串的線索。現在我在查詢方法上使用字符串。有什麼建議?
使用實際的'Date' /'Time'對象並讓JDBC驅動程序處理它 – MadProgrammer
將String轉換爲日期(SimpleDateFormat)然後使用setDate –
如果您使用的是Java 8,並且具有最新的JDBC驅動程序,你應該使用像'LocalDate'和'LocalTime'這樣的'java.time'對象,並使用'setObject'。 – RealSkeptic