mysql自動(dòng)填充時(shí)間的兩種實(shí)現(xiàn)方式小結(jié)
mysql自動(dòng)填充時(shí)間的兩種方式
mysql建表的時(shí)候有兩個(gè)列,一個(gè)是createtime、另一個(gè)是updatetime
- 當(dāng)插入一條數(shù)據(jù),createtime列和updatetime列由數(shù)據(jù)庫(kù)獲取當(dāng)前時(shí)間自動(dòng)創(chuàng)建時(shí)間
- 當(dāng)修改一條記錄時(shí),updatetime列由數(shù)據(jù)庫(kù)獲取按當(dāng)前時(shí)間自動(dòng)更新時(shí)間
方法一:數(shù)據(jù)庫(kù)級(jí)別
(工作中不允許你修改數(shù)據(jù)庫(kù)),一般我們采用方法二
1.在表中新增字段 create_time, update_time,記得同步實(shí)體類(lèi)
2.設(shè)置createtime、updatetime的默認(rèn)值為CURRENT_TIMESTAMP
3.設(shè)置updatetime列屬性ON UPDATE CURRENT_TIMESTAMP
方式二:代碼級(jí)別
(使用mybatis_plus
自動(dòng)填充策略實(shí)現(xiàn))
1、刪除數(shù)據(jù)庫(kù)的默認(rèn)值、更新操作!
2、實(shí)體類(lèi)字段屬性上需要增加注解
// 字段添加填充內(nèi)容 @TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime;
3、編寫(xiě)處理器來(lái)處理這個(gè)注解即可!即配置填充策略
import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; @Slf4j @Component // 一定不要忘記把處理器加到IOC容器中! public class MyMetaObjectHandler implements MetaObjectHandler { // 插入時(shí)的填充策略 @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill....."); // setFieldValByName(String fieldName, Object fieldVal,MetaObjectmetaObject // 最新的MP可以采用這個(gè)方法:this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); this.setFieldValByName("createTime",new Date(),metaObject); this.setFieldValByName("updateTime",new Date(),metaObject); } // 更新時(shí)的填充策略 @Override public void updateFill(MetaObject metaObject) { log.info("start update fill....."); this.setFieldValByName("updateTime",new Date(),metaObject); } }
4、測(cè)試插入
5、測(cè)試更新、觀察時(shí)間即可!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL之高可用集群部署及故障切換實(shí)現(xiàn)
這篇文章主要介紹了MySQL之高可用集群部署及故障切換實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04用Eclipse連接MySQL數(shù)據(jù)庫(kù)的步驟
這篇文章主要介紹了如何用Eclipse連接MySQL數(shù)據(jù)庫(kù),需要的朋友可以參考下2015-08-08MySQL使用Replace操作時(shí)造成數(shù)據(jù)丟失的問(wèn)題解決
這篇文章主要給大家介紹了關(guān)于MySQL使用Replace操作時(shí)造成數(shù)據(jù)丟失問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09對(duì)MySQL配置參數(shù) my.ini/my.cnf的詳細(xì)解析
今天我們今天主要向大家描述的是MySQL配置參數(shù) my.ini/my.cnf,以下的文章就是對(duì)其實(shí)際操作的具體內(nèi)容的詳細(xì)解析2010-08-08Mysql?InnoDB引擎中頁(yè)目錄和槽的查找過(guò)程
這篇文章主要為大家介紹了Mysql?InnoDB引擎中頁(yè)目錄和槽的查找記錄過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05mysql正則表達(dá)式(regexp和rlike)的搜索功能實(shí)例分析
這篇文章主要介紹了mysql正則表達(dá)式(regexp和rlike)的搜索功能,結(jié)合實(shí)例形式分析了mysql正則表達(dá)式使用regexp和rlike的搜索功能相關(guān)原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12