<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • Mybatis中如何使用TypeHandler實現(xiàn)處理枚舉-創(chuàng)新互聯(lián)

            創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

            創(chuàng)新互聯(lián)建站基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務器托管報價,主機托管價格性價比高,為金融證券行業(yè)四川樂山服務器托管,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。

            這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)Mybatis中如何使用TypeHandler實現(xiàn)處理枚舉,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

            在Mybatis中,處理枚舉類的TypeHandler有兩個:

            • EnumTypeHandler: 用于保存枚舉名
            • EnumOrdinalTypeHandler: 用于保存枚舉的序號。

            在實際項目中,以上往往不能滿足我們的需求。

            需求分析

            枚舉需要包含兩個屬性,label(用于顯示), value(實際的枚舉值)。數(shù)據(jù)庫保存枚舉值(value)。

            這很明顯Mybatis提供的兩個枚舉TypeHandler不能滿足我們的需求。此時,我們可以自定義一個通用的枚舉TypeHandler來滿足我們的需求。

            自定義枚舉TypeHandler

            通用枚舉DisplayedEnum

            public interface DisplayedEnum {
             String DEFAULT_VALUE_NAME = "value";
             String DEFAULT_LABEL_NAME = "label";
             default Integer getValue() {
             Field field = ReflectionUtils.findField(this.getClass(), DEFAULT_VALUE_NAME);
             if (field == null)
              return null;
             try {
              field.setAccessible(true);
              return Integer.parseInt(field.get(this).toString());
             } catch (IllegalAccessException e) {
              throw new RuntimeException(e);
             }
             }
             @JsonValue
             default String getLabel() {
             Field field = ReflectionUtils.findField(this.getClass(), DEFAULT_LABEL_NAME);
             if (field == null)
              return null;
             try {
              field.setAccessible(true);
              return field.get(this).toString();
             } catch (IllegalAccessException e) {
              throw new RuntimeException(e);
             }
             }
             static <T extends Enum<T>> T valueOfEnum(Class<T> enumClass, Integer value) {
             if (value == null)
              throw new IllegalArgumentException("DisplayedEnum value should not be null");
             if (enumClass.isAssignableFrom(DisplayedEnum.class))
              throw new IllegalArgumentException("illegal DisplayedEnum type");
             T[] enums = enumClass.getEnumConstants();
             for (T t: enums) {
              DisplayedEnum displayedEnum = (DisplayedEnum)t;
              if (displayedEnum.getValue().equals(value))
              return (T) displayedEnum;
             }
             throw new IllegalArgumentException("cannot parse integer: " + value + " to " + enumClass.getName());
             }
            }

            網(wǎng)頁名稱:Mybatis中如何使用TypeHandler實現(xiàn)處理枚舉-創(chuàng)新互聯(lián)
            鏈接URL:http://www.jbt999.com/article14/gecde.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、外貿(mào)建站、品牌網(wǎng)站建設(shè)網(wǎng)站營銷、關(guān)鍵詞優(yōu)化、靜態(tài)網(wǎng)站

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

            成都定制網(wǎng)站網(wǎng)頁設(shè)計

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 最新偷拍网址 | 99最新视频 | 精品免费囯产一区二区三区 | 欧美色图亚洲视频 | 欧美操逼毛片 |