-
java.util.Date是不能直接插入數據庫中的,雖然它包含了日期和時分秒。
-
java.sql.Date可以直接插入數據庫,但是它只有日期而沒有時間;
-
java.sql.Time可以直接插入數據庫,但是它只有時間,沒有日期
-
Java.util.Date需要轉換為Java.sql.Date,常規的方式轉換過來只可以得到年月日,如若要取得時分秒,可以用Java.sql.Date類的子類Timestamp
使用java.sql.Timestamp來向數據庫插入。在程序中,我們常常是使用的java.util.Date,所以就要將java.util.Date轉化為java.sql.Timestamp
代碼如下:
import java.sql.Timestamp;
// 添加聯系人
public void insertStu(Stu stu) {
Connection conn = null;
PreparedStatement stmt = null;
try {
// 獲取連接
conn = MyJdbcUtil.getConnection();
// 准備SQL語句
String sql = "INSERT INTO stu(xm,xb,csrq,fs,gmt_create,status) VALUES(?,?,?,?,?,?)";
// 預編譯
stmt = conn.prepareStatement(sql);
// 設置參數
stmt.setString(1, stu.getXm());
stmt.setString(2, stu.getXb());
stmt.setDate(3,new java.sql.Date(stu.getCsrq().getTime()));
stmt.setBigDecimal(4, stu.getFs());
stmt.setTimestamp(5,new Timestamp(stu.getGmt_create().getTime()));
stmt.setString(6, stu.getStatus());
// 執行
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
MyJdbcUtil.close(conn, stmt);
}
}