mybatis、mysql 创建时间(create_time)异常自动更新为当前时间

5 篇文章 0 订阅
4 篇文章 0 订阅

一、问题

bug: mybatis更新代码没有修改时间,但是时间会自动更新为当前时间

。。。 被坑了挺久

二、原因

可能是创建表的时候, Navicat Premium 等可视化工具给你整活了。。。

在这里插入图片描述

三、解决

取消勾选。

注意:检查一下自己的表所有的datetime类型的字段。避免出现问题。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,首先我们需要创建一个对应的数据表,表结构如下: ```sql CREATE TABLE SMStemplate ( seq_no INT(11) NOT NULL AUTO_INCREMENT, template_id VARCHAR(50) NOT NULL, push_plan_tp_cd VARCHAR(50) NOT NULL, template_name VARCHAR(50) NOT NULL, template_content TEXT NOT NULL, creator_no VARCHAR(50) NOT NULL, create_time DATETIME NOT NULL, modifier_no VARCHAR(50) NOT NULL, mod_time DATETIME NOT NULL, opro_instno VARCHAR(50) NOT NULL, PRIMARY KEY (seq_no) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` 接下来我们需要编写对应的实体类,代码如下: ```java public class SMSTemplate { private int seq_no; private String template_id; private String push_plan_tp_cd; private String template_name; private String template_content; private String creator_no; private Date create_time; private String modifier_no; private Date mod_time; private String opro_instno; // getter和setter方法省略 } ``` 然后我们需要编写对应的Mapper接口,代码如下: ```java public interface SMSTemplateMapper { // 新增短信模板 void addSMSTemplate(SMSTemplate smsTemplate); // 根据seq_no删除短信模板 void deleteSMSTemplate(int seq_no); // 更新短信模板 void updateSMSTemplate(SMSTemplate smsTemplate); // 根据seq_no查询短信模板 SMSTemplate getSMSTemplateBySeqNo(int seq_no); } ``` 接下来我们需要编写对应的Mapper.xml文件,代码如下: ```xml <mapper namespace="com.example.mapper.SMSTemplateMapper"> <!-- 新增短信模板 --> <insert id="addSMSTemplate"> INSERT INTO SMStemplate(template_id, push_plan_tp_cd, template_name, template_content, creator_no, create_time, modifier_no, mod_time, opro_instno) VALUES(#{template_id}, #{push_plan_tp_cd}, #{template_name}, #{template_content}, #{creator_no}, #{create_time}, #{modifier_no}, #{mod_time}, #{opro_instno}) </insert> <!-- 根据seq_no删除短信模板 --> <delete id="deleteSMSTemplate"> DELETE FROM SMStemplate WHERE seq_no=#{seq_no} </delete> <!-- 更新短信模板 --> <update id="updateSMSTemplate"> UPDATE SMStemplate SET template_id=#{template_id}, push_plan_tp_cd=#{push_plan_tp_cd}, template_name=#{template_name}, template_content=#{template_content}, modifier_no=#{modifier_no}, mod_time=#{mod_time}, opro_instno=#{opro_instno} WHERE seq_no=#{seq_no} </update> <!-- 根据seq_no查询短信模板 --> <select id="getSMSTemplateBySeqNo" resultType="com.example.entity.SMSTemplate"> SELECT * FROM SMStemplate WHERE seq_no=#{seq_no} </select> </mapper> ``` 最后我们就可以在Java代码中使用Mapper接口进行增删改查操作了,示例代码如下: ```java @Autowired private SMSTemplateMapper smsTemplateMapper; // 新增短信模板 SMSTemplate smsTemplate = new SMSTemplate(); smsTemplate.setTemplate_id("template_001"); smsTemplate.setPush_plan_tp_cd("plan_001"); smsTemplate.setTemplate_name("测试模板"); smsTemplate.setTemplate_content("测试模板内容"); smsTemplate.setCreator_no("admin"); smsTemplate.setCreate_time(new Date()); smsTemplate.setModifier_no("admin"); smsTemplate.setMod_time(new Date()); smsTemplate.setOpro_instno("inst_001"); smsTemplateMapper.addSMSTemplate(smsTemplate); // 根据seq_no删除短信模板 smsTemplateMapper.deleteSMSTemplate(1); // 更新短信模板 SMSTemplate smsTemplate = smsTemplateMapper.getSMSTemplateBySeqNo(2); smsTemplate.setTemplate_name("更新后的测试模板"); smsTemplate.setMod_time(new Date()); smsTemplateMapper.updateSMSTemplate(smsTemplate); // 根据seq_no查询短信模板 SMSTemplate smsTemplate = smsTemplateMapper.getSMSTemplateBySeqNo(2); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值