最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)mysql自動(dòng)更新創(chuàng)建時(shí)間與更新時(shí)間的兩種方式

 更新時(shí)間:2024年01月21日 09:41:16   作者:liulala16  
在實(shí)際開發(fā)中,每條數(shù)據(jù)的創(chuàng)建時(shí)間和修改時(shí)間,盡量不需要應(yīng)用程序去記錄,而由數(shù)據(jù)庫獲取當(dāng)前時(shí)間自動(dòng)記錄創(chuàng)建時(shí)間,本文主要介紹了java實(shí)現(xiàn)mysql自動(dòng)更新創(chuàng)建時(shí)間與更新時(shí)間的兩種方式,感興趣的可以了解一下

一:通過數(shù)據(jù)庫自身實(shí)現(xiàn)

1 、創(chuàng)建表的時(shí)候加上  create_time  與   update_time 兩個(gè)字段

  create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',
  update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時(shí)間',

2、若表已經(jīng)存在,這兩個(gè)字段不存在,則添加這兩個(gè)字段 

ALTER TABLE `table_name`
ADD COLUMN  `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間';

ALTER TABLE `table_name`
ADD COLUMN `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時(shí)間' 

3、若表與這兩個(gè)字段均存在,但字段不是自動(dòng)獲取數(shù)據(jù)庫時(shí)間,則修改字段

ALTER TABLE `table_name`
MODIFY COLUMN  `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間';

ALTER TABLE `table_name`
MODIFY COLUMN `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時(shí)間' 

4、可以使用可視化工具設(shè)置,以navicat為例

1)鼠標(biāo)右鍵 設(shè)計(jì)表

2)選擇添加字段,字段名為 create_time ,類型為 timestamp,默認(rèn) CURRENT_TIMESTAMP

3)選中根據(jù)當(dāng)前時(shí)間戳更新

二:通過mybatisplus的TableField注解添加

1)在實(shí)體類上的createTime與updateTime上添加注解:    

    @TableField(fill = FieldFill.INSERT) 
    private LocalDateTime createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE) 
    private LocalDateTime updateTime;

2)自定義元數(shù)據(jù)對(duì)象處理器繼承MetaObjectHandler接口,實(shí)現(xiàn)insertFill與updateFill方法,這兩個(gè)接口類似攔截器,在執(zhí)行數(shù)據(jù)庫insert與update操作的時(shí)候自動(dòng)執(zhí)行這兩個(gè)方法,因此如果有創(chuàng)建人與修改人等需要自動(dòng)創(chuàng)建修改的字段也可以在其中添加

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;

/**
 * 自定義元數(shù)據(jù)對(duì)象處理器
 */
@Component
@Slf4j
public class MyMetaObjecthandler implements MetaObjectHandler {
    /**
     * 插入操作,自動(dòng)填充
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("公共字段自動(dòng)填充[insert]...");
       
        metaObject.setValue("createTime", LocalDateTime.now());
        metaObject.setValue("updateTime",LocalDateTime.now());     
    }

    /**
     * 更新操作,自動(dòng)填充
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("公共字段自動(dòng)填充[update]...");

        metaObject.setValue("updateTime",LocalDateTime.now());       
    }
}

三:若時(shí)間與當(dāng)前時(shí)間相差8小時(shí),則在my.conf文件中的[mysqld]節(jié)點(diǎn)設(shè)置時(shí)區(qū)參數(shù)

default-time-zone=Asia/Shanghai

若是5.7版本則是如下配置

default-time-zone = '+8:00'

如果mysql是docker創(chuàng)建的,則需要調(diào)整mysql容器內(nèi)的系統(tǒng)日期時(shí)間

//1、把當(dāng)前宿主機(jī)的時(shí)區(qū)信息復(fù)制到mysql容器的時(shí)區(qū)中
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器名稱或Id:etc/localtime
 
//2、重啟mysql服務(wù)即可
docker restart 容器名稱或Id

到此這篇關(guān)于java實(shí)現(xiàn)mysql自動(dòng)更新創(chuàng)建時(shí)間與更新時(shí)間的兩種方式的文章就介紹到這了,更多相關(guān)java mysql自動(dòng)更新時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • MySQL?時(shí)區(qū)與?serverTimezone詳解

    MySQL?時(shí)區(qū)與?serverTimezone詳解

    存儲(chǔ)?TIMESTAMP?類型數(shù)據(jù)時(shí),MySQL 會(huì)根據(jù)當(dāng)前會(huì)話的時(shí)區(qū)將時(shí)間轉(zhuǎn)換為 UTC 時(shí)間,MySQL 實(shí)際存儲(chǔ)的是 UTC 時(shí)間,這篇文章主要介紹了MySQL?時(shí)區(qū)與?serverTimezone,需要的朋友可以參考下
    2024-12-12
  • MySQL 復(fù)制詳解及簡(jiǎn)單實(shí)例

    MySQL 復(fù)制詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了MySQL 復(fù)制詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • mysql 8.0.25 安裝配置方法圖文教程

    mysql 8.0.25 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.25 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 詳解如何利用amoeba(變形蟲)實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離

    詳解如何利用amoeba(變形蟲)實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離

    這篇文章主要介紹了詳解如何利用amoeba(變形蟲)實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • mysql中包含查詢的五種方法總結(jié)

    mysql中包含查詢的五種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于mysql中包含查詢的五種方法, 在MySQL中,包含語句是一種用來包含其他查詢語句的語句,通常用在WHERE語句中,需要的朋友可以參考下
    2023-08-08
  • MySQL將多條數(shù)據(jù)合并成一條的完整示例

    MySQL將多條數(shù)據(jù)合并成一條的完整示例

    我們?cè)谑褂胢ysql的時(shí)候常會(huì)遇到合并的需求,下面這篇文章主要給大家介紹了關(guān)于MySQL將多條數(shù)據(jù)合并成一條的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Linux下MYSQL 5.7 找回root密碼的問題(親測(cè)可用)

    Linux下MYSQL 5.7 找回root密碼的問題(親測(cè)可用)

    這篇文章主要介紹了Linux下MYSQL 5.7 找回root密碼的問題(親測(cè)可用),通過 --skip-grant-tables 找回,新增完成后,:wq 保存退出,重啟mysqld服務(wù),具體內(nèi)容詳情跟隨小編一起看看吧
    2021-10-10
  • MySQL主庫binlog(master-log)與從庫relay-log關(guān)系代碼詳解

    MySQL主庫binlog(master-log)與從庫relay-log關(guān)系代碼詳解

    這篇文章主要介紹了MySQL主庫binlog與從庫relay-log關(guān)系的相關(guān)內(nèi)容,涉及部分代碼,需要的朋友可以參考。
    2017-10-10
  • 詳解MySQL安裝及MySQL8.0新密碼認(rèn)證方式

    詳解MySQL安裝及MySQL8.0新密碼認(rèn)證方式

    這篇文章主要介紹了詳解MySQL安裝及MySQL8.0新密碼認(rèn)證方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • mysql 存儲(chǔ)過程的問題

    mysql 存儲(chǔ)過程的問題

    最近我接觸了一本php 與 mysql,老外寫的一本書,書中有個(gè)tshirtshop網(wǎng)店代碼,其中操作數(shù)據(jù)庫的大多用的是mysql存儲(chǔ)過程
    2009-06-06

最新評(píng)論

万载县| 元朗区| 依安县| 辽源市| 喀喇沁旗| 加查县| 安庆市| 洪雅县| 石嘴山市| 含山县| 都昌县| 监利县| 崇州市| 历史| 依兰县| 新干县| 南雄市| 毕节市| 鹤山市| 塔河县| 岱山县| 霍山县| 于田县| 恩施市| 蒙城县| 滦南县| 尖扎县| 天等县| 峡江县| 彭水| 冕宁县| 青川县| 诸暨市| 卢湾区| 阆中市| 霍邱县| 阳朔县| 肥东县| 长垣县| 西乌珠穆沁旗| 六枝特区|