mysql使用datetime,java如何保存

CREATE TABLE `user` (
    ```省略部分代码```
  	`create_time` datetime NOT NULL COMMENT '创建时间'
  	 ```省略部分代码```
 )

java

class User {
	private Timestamp createTime;
}

java8
import java.sql.Timestamp;

```省略部分代码```
LocalDateTime now = LocalDateTime.now(); // 获取当前日期时间
Timestamp ts = Timestamp.valueOf(now); // 将LocalDateTime转换为Timestamp
System.out.println("当前时间戳为: " + ts.toString());
user.setCreateTime(ts);
```省略部分代码```

低于java8
import java.sql.Timestamp;

```省略部分代码```
Date date = new Date(); // 使用系统当前日期/时间.
long time = date.getTime(); // 获取毫秒级别的时间
Timestamp ts = new Timestamp(time); // 创建Timestamp对象
System.out.println("当前时间戳为: " + ts.toString()); // 输出当前时间戳.
user.setCreateTime(ts);
```省略部分代码```

MySQL的datetime类型存储格式通常是YYYY-MM-DD HH:MM:SS。在Java程序中,我们经常将datetime类型的数据转换成时间戳来方便处理,特别是在涉及到日期时间计算或者比较的时候。
如果需要将Java中的Timestamp对象存储到MySQL的datetime类型列中,你只需要在插入数据时使用适当的SQL语句。同样的,当你从MySQL数据库的datetime类型列中查询数据时,你也可以将其读取为Java的Timestamp对象。
MySQL的JDBC驱动程序可以自动完成Java程序和MySQL数据库之间转换日期时间数据。

Mybatis

如果你在使用MyBatis框架,你仍然可以很方侈地处理和存储时间戳和MySQL中的datetime类型数据。MyBatis的映射文件可以帮助你在Java对象和数据库表之间转换数据。这里有一个简单的例子来展示如何在MyBatis配置中映射datetime:
首先,确保你的实体类中有一个用来表示日期和时间的LocalDateTime字段。例如:

public class User {
    private LocalDateTime createTime;
    // getters and setters
}

接着,在MyBatis的映射文件中,你可以像这样设置一个插入操作:

<insert id="save" parameterType="User">
  INSERT INTO your_table (create_time) VALUES (#{createTime})
</insert>

MyBatis会自动处理LocalDateTime和MySQL datetime类型之间的转换。当运行这个插入命令时,你的LocalDateTime值会被正确转换并存储在数据库的datetime列中。
对于查询操作,MyBatis也会自动将查询结果从数据库的datetime类型转换为Java的LocalDateTime类型:

<select id="select" resultType="User">
  SELECT create_time FROM user
</select>

在配置好映射之后,可以直接在你的Mapper接口中定义方法,然后像平时一样调用这些方法来执行数据库操作。MyBatis会负责幕后的类型转换工作。

注:
mybatis3.4.0版本报错
No typehandler found for property createTime

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值