在JDBC中處理日期主要通過java.sql.Date和java.sql.Timestamp類來完成。
java.sql.Date類用于存儲日期數據,其構造方法可以接受年、月、日作為參數,例如:
```java
java.sql.Date date = new java.sql.Date(2020, 1, 1);
```
可以通過PreparedStatement的setDate方法將日期參數設置到SQL語句中,例如:
```java
PreparedStatement ps = conn.prepareStatement("INSERT INTO table (date_column) VALUES (?)");
ps.setDate(1, date);
ps.executeUpdate();
```
java.sql.Timestamp類用于存儲日期和時間數據,其構造方法可以接受年、月、日、時、分、秒作為參數,例如:
```java
java.sql.Timestamp timestamp = new java.sql.Timestamp(2020, 1, 1, 12, 0, 0);
```
可以通過PreparedStatement的setTimestamp方法將日期和時間參數設置到SQL語句中,例如:
```java
PreparedStatement ps = conn.prepareStatement("INSERT INTO table (timestamp_column) VALUES (?)");
ps.setTimestamp(1, timestamp);
ps.executeUpdate();
```
在查詢數據庫時,可以使用ResultSet的getDate或getTimestamp方法獲取日期或日期和時間數據,例如:
```java
ResultSet rs = stmt.executeQuery("SELECT * FROM table");
while (rs.next()) {
java.sql.Date date = rs.getDate("date_column");
java.sql.Timestamp timestamp = rs.getTimestamp("timestamp_column");
// 處理日期數據
}
```
需要注意的是,java.sql.Date只包含日期信息,時間信息將被忽略;而java.sql.Timestamp包含日期和時間信息。