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

MyBatis Plus配置日志CRUD的使用詳解

 更新時間:2020年08月05日 14:11:15   作者:Asong臭狗屎  
這篇文章主要介紹了MyBatis Plus配置日志,CRUD的使用,,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

配置日志

我們所有的sqlmybatisplus是不可見的,所以在開發(fā)中需要配置日志,開發(fā)完成后,就可以取消日志了,因為日志也是損耗資源的

#配置日志
mybatis-plus:
 configuration:
  log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #僅控制臺輸出的日志

配置完日志后,后面的學習就需要注意自動生成的SQL,相信你們會喜歡上MybatisPlus

CRUD使用

Insert插入

 //測試插入
  @Test
  public void testInsert(){
    Air air = new Air();
    air.setDistrictId(4);
    air.setLastModifyTime(new Date());
    air.setMonitoringStation("哈哈哈哈哈哈");
    air.setMonitorTime(new Date());
    air.setPm10(33);
    air.setPm25(65);
    airMapper.insert(air);
    System.out.println(air);
  }

這里可以看出系統(tǒng)幫我們自動生成了一個id

因為我數(shù)據(jù)庫設置的自增的,我把自增取消

再看一下插入結果,發(fā)現(xiàn)標紅了,因為默認會插入0為主鍵的id,我之前有一個0所以插入失敗

有的人的id如果是Lang類型的可能會默認插入很長的一段數(shù)字作為id,這里是雪花算法所生成的隨機數(shù),全球唯一(全局唯一id)
對應數(shù)據(jù)庫中的主鍵(uuid,自增id,雪花算法,redis,zookeeper)

主鍵生成策略

Twittersnowflake算法(雪花算法)

snowflakeTwitter開源的分布式ID生成算法,結果是一個long型的ID。其核心思想是:使用41bit作為毫秒數(shù),10bit作為機器的ID(5個bit是數(shù)據(jù)中心,5個bit的機器ID),12bit作為毫秒內(nèi)的流水號(意味著每個節(jié)點在每毫秒可以產(chǎn)生 4096 個 ID),最后還有一個符號位,永遠是0。

要想設置主鍵的增加方式可以加入注解@TableId,因為是枚舉類所以后面有很多方式

更新操作

//測試更新
  @Test
  public void testUpdate(){
    Air air = new Air();
    air.setId(9L);
    air.setDistrictId(4);
    air.setLastModifyTime(new Date());
    air.setMonitoringStation("哈");
    air.setMonitorTime(new Date());
    air.setPm10(33);
    air.setPm25(65);
    airMapper.updateById(air);
  }

因為像new Date()這種在代碼中出現(xiàn),顯得很low而且消耗資源,我們可以使用注解的方式:

自動填充

創(chuàng)建時間,修改時間這些個操作一般都是自動化完成的不希望手動更新
阿里巴巴研發(fā)手冊: 所有的數(shù)據(jù)庫表:gmt_create,gmt_modified(格林尼治時間)

方式一:數(shù)據(jù)庫方式(工作中一般是不允許修改數(shù)據(jù)庫的,因為牽扯的問題很多很復雜特別容易出bug還找不出來)

在表中的這兩個表,就是創(chuàng)建和修改時間

打鉤自動更新當前時間

如果還有自己手寫日期的小伙伴,以后你就不用一個一個添加了

代碼級別刪除數(shù)據(jù)庫默認值實體類的字段屬性上需要增加注釋@TableField

源碼如下,可以看到fill的方法就是填充方法


public class Air {
 @TableId(type = IdType.ASSIGN_ID)
 private Long id;
 private long districtId;
 @TableField(fill = FieldFill.INSERT) //插入的時候更新插入時間
 private Date monitorTime;
 private long pm10;
 private long pm25;
 private String monitoringStation;
 @TableField(fill = FieldFill.INSERT_UPDATE) //更新和插入的時候都更新時間
 private Date lastModifyTime;
}

當然填充策略可以重寫,進行自定義填充策略

首先創(chuàng)建一個MyMetaObjectHandler類(名字隨便)

@Slf4j //抓取日志
@Component //SpringBoot的注解 ,一定不要忘了吧處理器加到IOC容器中
public class MyMetaObjectHandler implements MetaObjectHandler {

  @Override
  public void insertFill(MetaObject metaObject) {
    log.info("start insert fill");
//源碼: setFieldValByName(String fieldName(字段名), Object fieldVal(字段值), MetaObject metaObjec(對象))
    this.setFieldValByName("monitor_time",new Date(),metaObject);
    this.setFieldValByName("last_modify_time",new Date(),metaObject);
  }

  @Override
  public void updateFill(MetaObject metaObject) {
    log.info("Start update fill....");
    this.setFieldValByName("last_modify_time",new Date(),metaObject);
  }
}

測試

增加:

更新

可以看到時間已經(jīng)自動更新為當前的時間了

總結

到此這篇關于MyBatis Plus配置日志,CRUD的使用的文章就介紹到這了,更多相關MyBatis Plus配置日志CRUD的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 微信小程序錄音文件格式silk遇到的問題及解決方法

    微信小程序錄音文件格式silk遇到的問題及解決方法

    錄音文件為silk格式,說是silk其實是base64加密后的webm格式,只需將其轉為webm格式即可。但是在處理過程中遇到各種坑,下面小編給大家?guī)砹宋⑿判〕绦蜾浺粑募袷絪ilk遇到的問題及解決方法,感興趣的朋友一起看看吧
    2018-09-09
  • spring中@Autowired自動注入依賴項的使用

    spring中@Autowired自動注入依賴項的使用

    當使用@Autowired注解時,它可以自動注入依賴項,例如其他類的實例,本文就來詳細的介紹一下,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • MyBatis的模糊查詢mapper.xml的寫法講解

    MyBatis的模糊查詢mapper.xml的寫法講解

    這篇文章主要介紹了MyBatis的模糊查詢mapper.xml的寫法講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 淺談javaSE GUI (Action事件)

    淺談javaSE GUI (Action事件)

    下面小編就為大家?guī)硪黄獪\談javaSE GUI (Action事件)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • Java多線程中的Executor詳解

    Java多線程中的Executor詳解

    這篇文章主要介紹了Java多線程中的Executor詳解,該接口提供了一種將任務提交與如何運行每個任務的機制(包括線程使用、調(diào)度等細節(jié))解耦的方法,它通常使用預先創(chuàng)建線程而不是創(chuàng)建線程,需要的朋友可以參考下
    2023-12-12
  • Spring Security使用中Preflight請求和跨域問題詳解

    Spring Security使用中Preflight請求和跨域問題詳解

    這篇文章主要給大家介紹了關于Spring Security使用中Preflight請求和跨域問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • Java順序表實現(xiàn)圖書管理系統(tǒng)

    Java順序表實現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Java順序表實現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Spring boot實現(xiàn)熱部署的兩種方式詳解

    Spring boot實現(xiàn)熱部署的兩種方式詳解

    這篇文章主要介紹了Spring boot實現(xiàn)熱部署的兩種方式,這兩種方法分別是使用 Spring Loaded和使用spring-boot-devtools進行熱部署,文中給出了詳細示例代碼和介紹,需要的朋友可以參考學習,下面來一起看看吧。
    2017-04-04
  • 堆排序實例(Java數(shù)組實現(xiàn))

    堆排序實例(Java數(shù)組實現(xiàn))

    下面小編就為大家分享一篇使用Java數(shù)組實現(xiàn)堆排序的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 詳談Springfox與swagger的整合使用

    詳談Springfox與swagger的整合使用

    下面小編就為大家?guī)硪黄斦凷pringfox與swagger的整合使用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論

临澧县| 普兰店市| 佛冈县| 扶沟县| 乌拉特后旗| 德令哈市| 固原市| 诸城市| 洪泽县| 达州市| 锦州市| 临澧县| 尼木县| 宝坻区| 花莲市| 屏山县| 南宁市| 翼城县| 阿拉善盟| 烟台市| 济源市| 广饶县| 革吉县| 江永县| 张北县| 贵南县| 博湖县| 定结县| 高清| 扎囊县| 万盛区| 平舆县| 珲春市| 沧源| 玉树县| 南乐县| 余庆县| 吉安县| 浦北县| 资兴市| 理塘县|