国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:2日期:2023-10-23 12:38:12

配置日志

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

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

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

配置完日志后,后面的學習就需要注意自動生成的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); }

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

這里可以看出系統幫我們自動生成了一個id

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

因為我數據庫設置的自增的,我把自增取消

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

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

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

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

主鍵生成策略

Twitter的snowflake算法(雪花算法)

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

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

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

更新操作

//測試更新 @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); }

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

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

自動填充

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

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

在表中的這兩個表,就是創建和修改時間

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

打鉤自動更新當前時間

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

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

代碼級別刪除數據庫默認值MyBatis Plus配置日志CRUD的使用詳解實體類的字段屬性上需要增加注釋@TableField

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

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

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

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;}

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

首先創建一個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); }}

測試

增加:

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

更新

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

可以看到時間已經自動更新為當前的時間了

總結

到此這篇關于MyBatis Plus配置日志,CRUD的使用的文章就介紹到這了,更多相關MyBatis Plus配置日志CRUD的使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 韩国欧美一级毛片 | 成人在线中文字幕 | 日本视频免费在线播放 | 国产成人精品福利网站人 | 国产成人久久一区二区三区 | 亚洲小视频网站 | 国产三级日本三级日产三 | 久久熟| 成年人毛片视频 | 亚洲精品视频在线 | 久久久久久亚洲精品中文字幕 | 亚洲国产精品免费在线观看 | 免费看一级做a爰片久久 | 欧美在线观看视频一区 | 草草在线免费视频 | 中文字幕在线网址 | 欧美色网在线 | 美国一级毛片完整高清 | 国产欧美日韩在线人成aaaa | 精品久久久影院 | 成 人 黄 色 视频播放16 | 日本亚州视频在线八a | 成人a免费α片在线视频网站 | 狠狠色丁香久久婷婷综 | 曰本女人色黄网站 | 久草免费福利 | 国产欧美精品一区二区三区四区 | 欧美国产精品不卡在线观看 | 亚洲精品综合久久中文字幕 | 国产精品99久久久久久小说 | avtom影院入口永久在线观看 | 亚洲第一在线播放 | 中文字幕精品在线观看 | 国产激情久久久久影 | 综合刺激网 | 亚洲精品www久久久久久久软件 | 男人的天堂在线 | 国产成人午夜 | 亚洲美女黄视频 | 亚洲 欧美 成人日韩 | 亚洲精品综合在线 |