天天看點

mybatis參數有list和實體類_Mybatis的幾種傳參方式,你了解多少?

mybatis參數有list和實體類_Mybatis的幾種傳參方式,你了解多少?

目錄

  • 前言
  • 單個參數
  • 多個參數
    • 使用索引【不推薦】
    • 使用@Param
    • 使用Map
    • POJO【推薦】
  • List傳參
  • 數組傳參
  • 總結

前言

  • 前幾天恰好面試一個應屆生,問了一個很簡單的問題:你了解過Mybatis中有幾種傳參方式嗎?
  • 沒想到其他問題回答的很好,唯獨這個問題一知半解,勉強回答了其中兩種方式。
  • 于是這篇文章就來說一說Mybatis傳參的幾種常見方式,給正在面試或者準備面試的朋友鞏固一下。

單個參數

  • 單個參數的傳參比較簡單,可以是任意形式的,比如

    #{a}

    #{b}

    或者

    #{param1}

    ,但是為了開發規範,盡量使用和入參時一樣。
  • Mapper如下:
  • XML如下:

多個參數

  • 多個參數的情況下有很多種傳參的方式,下面一一介紹。

使用索引【不推薦】

  • 多個參數可以使用類似于索引的方式傳值,比如

    #{param1}

    對應第一個參數,

    #{param2}

    對應第二個參數.......
  • Mapper方法如下:
  • XML如下:
  • 注意:由于開發規範,此種方式不推薦開發中使用。

使用@Param

  • @Param

    這個注解用于指定key,一旦指定了key,在SQL中即可對應的key入參。
  • Mapper方法如下:
  • XML如下:

使用Map

  • Mybatis底層就是将入參轉換成

    Map

    ,入參傳Map當然也行,此時

    #{key}

    中的

    key

    就對應Map中的

    key

  • Mapper中的方法如下:
  • XML如下:
  • 測試如下:
@Test
    void contextLoads() {
        Map map=new HashMap<>();
        map.put("userId","1222");
        map.put("status",1);
        UserInfo userInfo = userMapper.selectByUserIdAndStatusMap(map);
        System.out.println(userInfo);
    }
           

POJO【推薦】

  • 多個參數可以使用實體類封裝,此時對應的

    key

    就是屬性名稱,注意一定要有

    get

    方法。
  • Mapper方法如下:
  • XML如下:
  • 實體類如下:

List傳參

  • List傳參也是比較常見的,通常是SQL中的

    in

  • Mapper方法如下:
  • XML如下:

數組傳參

  • 這種方式類似List傳參,依舊使用

    foreach

    文法。
  • Mapper方法如下:
  • XML如下:

總結

  • 以上幾種傳參的方式在面試或者工作中都會用到,不了解的朋友可以收藏下。
  • Mybatis專題文章寫到這裡也算是到了尾聲,後期準備再寫寫Mybatis的面經,如果覺得作者寫的不錯,歡迎關注分享。
mybatis參數有list和實體類_Mybatis的幾種傳參方式,你了解多少?
mybatis參數有list和實體類_Mybatis的幾種傳參方式,你了解多少?

點個在看支援我吧,轉發就更好了