一、Java向MySQL插入当前时间的四种方式
1. 将 java.util.Date 类型的时间转成mysql数据库识别的 java.sql.Date 类型时间
Date time = new java.sql.Date(new java.util.Date().getTime());
// java.util.Date 是 java.sql.Date 的父类
2. java 用 PreparedStatement 的 setDate方法
// 用 PreparedStatement 的 setDate方法,给问号的日期类型赋值
pstmt.setTimestamp(1, newTimestamp(System.currentTimeMillis()));
pstmt.setDate(1, new java.sql.Date(new java.util.Date().getTime()));
3. 使用 Hibernate 提供的数据库操作方法
设置为java.util.Date类型后
以 Hibernate的Pojo类对象为例, pojo.set(new java.util.Date());
4. 使用 Timestamp 的valueOf方法
Mysql 与 java 的时间类型:
MySQL的时间类型 | Java中与之对应的时间类型 |
Date | java.sql.Date |
Datetime | java.sql.Timestamp |
Timestamp | java.sql.Timestamp |
Time | java.sql.Time |
Year | java.sql.Date |
通过以下方式去实现:
// 获得系统时间
Date date = new Date();
// 将时间格式转换成符合 Timestamp要求的格式
String nowTime = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(date);
// 把时间转换
Timestamp goodsC_date = Timestamp.valueOf(nowTime);
二、代码
// 使用Druid工具类
public class DruidDemo2 {
public static void main(String[] args) {
// 给 account表添加一条记录
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 1.获取连接
conn = JDBCUtils.getConnection();
// 2.定义sql
String sql = "INSERT INTO emp VALUES(null,?,?,?,?,?,null,?)";
// 3.获取 PrepareStatement对象
pstmt = conn.prepareStatement(sql);
// 4.给 ?赋值
pstmt.setString(1,"大刘");
pstmt.setInt(2,4);
pstmt.setInt(3,1004);
// 向数据库插入当前时间
pstmt.setDate(4,new java.sql.Date(new java.util.Date().getTime()));
pstmt.setDouble(5,5000);
pstmt.setInt(6,30);
// 5.执行 sql
int count = pstmt.executeUpdate();
System.out.println(count);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(pstmt,conn);
}
}
}