向数据库中插入日期时间datetime类型数据,数据库中只有日期没有时分秒
-
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);
}
}