<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      關(guān)于JAVA項(xiàng)目公共字段自動(dòng)填充的理解

      公共字段字段填充是什么?

        “公共字段自動(dòng)填充”顧名思義,其實(shí)就是省略了在程序當(dāng)中對(duì)某些字段手動(dòng)填寫(xiě)的步驟,大大提高了效率! 

      為什么要使用公共字段填充技術(shù)在我們的程序當(dāng)中?

        在我們項(xiàng)目的開(kāi)發(fā)中,當(dāng)我們?cè)谛薷臄?shù)據(jù)庫(kù)中的某些值的時(shí)候,有一些字段屬于公共子段,就是有些字段不僅是在某一個(gè)表里有,而是好幾張表里面都要設(shè)置這些字段。

      為了簡(jiǎn)化項(xiàng)目的開(kāi)發(fā),縮小代碼量,我們就可以使用mybatis Plus為我們提供的公共字段填充功能,使我們的開(kāi)發(fā)更有效率,沒(méi)必要把時(shí)間和代碼量花費(fèi)在這些重復(fù)的工作上。具體可參考 https://blog.csdn.net/weixin_61724992/article/details/127435077
       

      實(shí)現(xiàn)步驟:

      1.在實(shí)體類的屬性上加入@TableField注解,指定自動(dòng)填充的策略
      @TableField注解的fill屬性:

      FieldFill.DEFAULT  //默認(rèn)不自動(dòng)填充

      FieldFill.INSERT  //插入時(shí)自動(dòng)填充

      FieldFill.UPDATE  //修改時(shí)自動(dòng)填充

      FieldFill.INSERT_UPDATE  //插入和修改時(shí)都自動(dòng)填充

      @Data
      @AllArgsConstructor
      @NoArgsConstructor
      @TableName("books")
      public class Book {
       
          private Integer ID;
          private String booksname;
          private String author;
       
          @TableField(fill = FieldFill.INSERT)
          private Integer num;
       
          @TableField(fill = FieldFill.INSERT_UPDATE)
          private Double price;
      }

      2.按照框架要求編寫(xiě)元數(shù)據(jù)對(duì)象處理器,在此類中統(tǒng)一為公共字段賦值,此類需要實(shí)現(xiàn)MetaObjectHandler接口,并實(shí)現(xiàn)insertFill和updateFill方法,再使用MetaObject來(lái)設(shè)置對(duì)應(yīng)字段要自動(dòng)添加的值。


      此類交spring管理,需要加上@Component注解
       

      //公共字段自動(dòng)填充處理器
      @Slf4j
      @Component
      public class MyMetaObjecthandler implements MetaObjectHandler {
          @Override
          public void insertFill(MetaObject metaObject) {
              log.info("添加時(shí)的操作...");
              metaObject.setValue("字段名","值");
          }
       
          @Override
          public void updateFill(MetaObject metaObject) {
              log.info("修改時(shí)的操作...");
              metaObject.setValue("字段名","值");
          }
      }

      對(duì)于自動(dòng)添加靜態(tài)值就如上即可

      3.動(dòng)態(tài)值自動(dòng)添加
      ThreadLocal

      ThreadLocal并不是一個(gè)Thread,而是Thread的局部變量。hreadLocal為每個(gè)線程提供單獨(dú)一份存儲(chǔ)空間,具有線程隔離的效果,只有在線程內(nèi)才能獲取到對(duì)應(yīng)的值,線程外則不能訪問(wèn)。

      簡(jiǎn)單概況為:在多線程并發(fā)情況下,每個(gè)線程中的變量都是相互獨(dú)立的(線程隔離效果)

      創(chuàng)建一個(gè)ThreadLocal封裝類

       

      public class BaseContext {
      //    這里的Double不是固定,根據(jù)自己的需求決定
          private static ThreadLocal<Double> threadLocal = new ThreadLocal<>();
       
          public static void setCurrent(Double num) {
              threadLocal.set(num);
          }
          public static Double getCurrent() {
              return threadLocal.get();
          }
      }

      回到MyMetaObjecthandler類中把具體值替換成BaseContext.getCurrent()即可

      注:如果設(shè)置自動(dòng)填充的話,就必須滿足MyMetaObjecthandler 類中對(duì)應(yīng)方法的所有字段。例如insertFill方法中要自動(dòng)填充兩個(gè)字段,那么你就必須得在實(shí)體類中也要設(shè)置兩個(gè)字段與之匹配,如果想解決這類問(wèn)題需要在MyMetaObjecthandler 類中進(jìn)行相應(yīng)的設(shè)置

      簡(jiǎn)單的測(cè)試

      @Autowired
          private BookService bookService;
          @Test
          void contextLoads() {
              Book book = new Book();
              book.setBooksname("三國(guó)演義");
              book.setAuthor("羅貫中");
              BaseContext.setCurrent(1111d);
              bookService.save(book);
          }

      效果

      posted @ 2023-07-04 21:44  しゅおく  閱讀(285)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲欧美偷国产日韩| 丁香花成人电影| 男人的天堂av社区在线| av无码一区二区大桥久未| 国产精品老熟女露脸视频| 成人免费av在线观看| 国产精品久久蜜臀av| 亚洲人成网站在线在线观看| 九九热精品在线视频观看| 综合欧美视频一区二区三区| 欧美日韩国产图片区一区| 色爱av综合网国产精品| 久久99精品久久久学生| 久久人与动人物a级毛片 | 亚洲国产一区二区精品专| 中文字幕制服国产精品| 国产一区国产精品自拍| 国产成人啪精品午夜网站| 精品一区二区三区四区激情| 九九热精彩视频在线免费| 亚洲综合色婷婷中文字幕| 亚洲av二区伊人久久| 国产精品亚洲二区在线播放| 国产在线98福利播放视频| 日韩一本不卡一区二区三区| 99久久亚洲综合精品成人| 亚洲欧美综合人成在线| 视频一区二区三区刚刚碰| 激情五月日韩中文字幕| 亚洲精品中文字幕二区| 国内精品综合九九久久精品| 最近免费中文字幕大全| 亚洲国产精品人人做人人爱| 日韩午夜福利视频在线观看| 99精品国产成人一区二区| 中年国产丰满熟女乱子正在播放 | 亚洲欧洲av一区二区| 国产丰满乱子伦无码专区| 无码一区二区三区免费| 内射无套内射国产精品视频| 国产精品视频午夜福利|