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

基于MyBatis的parameterType傳入?yún)?shù)類型

 更新時間:2021年09月29日 10:18:08   作者:Remember_Ray  
這篇文章主要介紹了基于MyBatis的parameterType傳入?yún)?shù)類型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MyBatis的parameterType傳入?yún)?shù)類型

在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType為輸入?yún)?shù),在配置的時候,配置相應的輸入?yún)?shù)類型即可。parameterType有基本數(shù)據(jù)類型和復雜的數(shù)據(jù)類型配置。

1. MyBatis的傳入?yún)?shù)parameterType類型分兩種

1. 1. 基本數(shù)據(jù)類型:int、string、long、Date;

1. 2. 復雜數(shù)據(jù)類型:類(JavaBean、Integer等)和Map

2. 如何獲取參數(shù)中的值

2.1 基本數(shù)據(jù)類型:#{參數(shù)} 獲取參數(shù)中的值

2.2 復雜數(shù)據(jù)類型:#{屬性名} ,map中則是#{key}

3.案例

3.1 傳入Long型

mapper接口代碼:

public User findUserById(Long id);  

xml代碼:

<select id="findUserById" parameterType="java.lang.Long" resultType="User">    
        select * from user where  id = #{id};    
</select>  

3.2 傳入List

mapper接口代碼:

public List<User> findUserListByIdList(List<Long> idList);    

xml代碼:

<select id="findUserListByIdList" parameterType="java.util.ArrayList" resultType="User">    
    select * from user user    
    <where>    
        user.ID in (    
          <foreach collection="list"  item="id" index="index" separator=",">   
             #{id}   
          </foreach>    
        )    
    </where>    
</select>  

在使用foreach的時候最關鍵的也是最容易出錯的就是collection屬性。

該屬性是必須指定的,但是在不同情況 下,該屬性的值是不一樣的,主要有一下3種情況:

1. 如果傳入的是單參數(shù)且參數(shù)類型是一個List的時候,collection屬性值為list

2. 如果傳入的是單參數(shù)且參數(shù)類型是一個array數(shù)組的時候,collection的屬性值為array

3. 如果傳入的參數(shù)是多個的時候,我們就需要把它們封裝成一個Map了,當然單參數(shù)也可

3.3 傳入數(shù)組:

mapper接口代碼:

public List<User> findUserListByIdList(int[] ids); 

xml代碼:

<select id="findUserListByIdList" parameterType="java.util.HashList" resultType="User">    
    select * from user user    
    <where>    
        user.ID in (    
           <foreach collection="array"  item="id" index="index"  separator=",">   
                #{id}   
           </foreach>    
        )    
    </where>    
</select>  

3.4 傳入map

mapper接口代碼:

public boolean exists(Map<String, Object> map);  

xml代碼:

<select id="exists" parameterType="java.util.HashMap" resultType="java.lang.Integer">    
        SELECT COUNT(*) FROM USER user    
        <where>    
            <if test="code != null">     
                and user.CODE = #[code]     
            </if>    
            <if test="id != null">     
                and user.ID = #{id}     
            </if>    
            <if test="idList !=null ">    
                and user.ID in (    
                   <foreach collection="idList" item="id" index="index" separator=",">   
                        #{id}   
                   </foreach>    
                )    
            </if>    
        </where>    
</select>  

MAP中有l(wèi)ist或array時,foreach中的collection必須是具體list或array的變量名。

比如這里MAP含有一個名為idList的list,所以MAP中用idList取值,這點和單獨傳list或array時不太一樣。

3.5傳入JAVA對象

mapper接口代碼:

public int findUserList(User user);   

xml代碼:

<select id="findUserList" parameterType="User" resultType="java.lang.Integer">    
        SELECT COUNT(*) FROM USER user    
        <where>    
            <if test="code != null">     
                and user.CODE = #[code]     
            </if>    
            <if test="id != null">     
                and user.ID = #{id}     
            </if>    
            <if test="idList !=null ">    
                and user.ID in (    
                    <foreach  collection="idList" item="id" index="index" separator=",">   
                         #{id}   
                    </foreach>    
                )    
            </if>    
        </where>    
</select> 

JAVA對象中有l(wèi)ist或array時,foreach中的collection必須是具體list或array的變量名。

比如這里User含有一個名為idList的list,所以User中用idList取值,這點和單獨傳list或array時不太一樣。

3.6注解@Param

例子1:

注解單一屬性;這個類似于將參數(shù)重命名了一次

mapper接口代碼:

List<User> selectUserByTime(@Param(value="startdate")String startDate);  

xml代碼:

<select id="selectUserByTime" resultType="User" parameterType="java.lang.String">    
    select * from t_user   
    where  create_time >= to_date(#{startdate,jdbcType=VARCHAR},'YYYY-MM-DD')  
</select>  

例子2:

注解javaBean

mapper接口代碼:

List<User> selectUserByTime(@Param(value="dateVO")DateVO dateVO);  

xml代碼:

<select id="selectUserByTime" resultType="User" parameterType="DateVO">    
    select *  
    from t_user  
    where create_time >= to_date(#{dateVO.startDate,jdbcType=VARCHAR},'YYYY-MM-DD')   
          and create_time < to_date(#{dateVO.endDate,jdbcType=VARCHAR},'YYYY-MM-DD')   
 </select>  

mybatis 之parameterType="Long"

 <select id="selectByPrimaryKeyByArrayMemberId"  resultType="memberModel" parameterType="Long">
           select 
           <include refid="Base_Column_List"/>
              from member m
           where
           m.IS_DELETE = 'N'
           and m.member_id IN
           <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
             #{item,jdbcType=DECIMAL}  
        </foreach>
    </select>
public ServiceMessage<List<Member>> selectByPrimaryKeyByArrayMemberId(
            List<Long> memberIds)
    {
        try
        {
            if (memberIds == null || memberIds.size()==0){
                return super.returnParamsError("參數(shù)為空!");
            }
            List<Member> list = memberMapper
            .selectByPrimaryKeyByArrayMemberId(memberIds);
            return super.returnCorrectResult(list);
        }
        catch (Throwable e)
        {
            return super.returnException(e);
        }
    }

    public ServiceMessage<List<Member>> selectByPrimaryKeyByArrayMemberId(List<Long> memberIds);
    List<Member> selectByPrimaryKeyByArrayMemberId(List<Long> memberIds);
    @Test
    public void testSelectByPrimaryKeyByArrayMemberId()
    {
        InternalMemberService internalMemberService = J1SOAHessianHelper.getService(url,InternalMemberService.class);
        List<Long> memberIds = new ArrayList<Long>();
        memberIds.add(1l);
        memberIds.add(2l);
        memberIds.add(1855l);
        ServiceMessage<List<Member>> sm = internalMemberService.selectByPrimaryKeyByArrayMemberId(memberIds);
        System.out.println(sm.getResult());
    }

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot中的Logging詳解

    SpringBoot中的Logging詳解

    這篇文章主要介紹了SpringBoot中的Logging詳解,log配置可能是被忽視的一個環(huán)節(jié),一般的項目中日志配置好了基本上很少去改動,我們常規(guī)操作是log.info來記錄日志內(nèi)容,很少會有人注意到springBoot中日志的配置,需要的朋友可以參考下
    2023-09-09
  • Java Mybatis一級緩存和二級緩存

    Java Mybatis一級緩存和二級緩存

    緩存是內(nèi)存當中一塊存儲數(shù)據(jù)的區(qū)域,目的是提高查詢效率,降低服務器和數(shù)據(jù)庫的壓力,這篇文章主要介紹了Mybatis一級緩存和二級緩存,感興趣的同學可以參考閱讀本文
    2023-04-04
  • spring集成okhttp3的步驟詳解

    spring集成okhttp3的步驟詳解

    okhttp是一個封裝URL,比HttpClient更友好易用的工具,下面這篇文章主要給大家介紹了關于spring集成okhttp3的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2018-04-04
  • spring?項目實現(xiàn)限流方法示例

    spring?項目實現(xiàn)限流方法示例

    這篇文章主要為大家介紹了spring項目實現(xiàn)限流的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • SpringCloud持久層框架MyBatis Plus的使用與原理解析

    SpringCloud持久層框架MyBatis Plus的使用與原理解析

    MyBatisPlus為MyBatis的增強版,專注于簡化數(shù)據(jù)庫操作,提供自動化CRUD、內(nèi)置分頁和樂觀鎖等功能,極大提升開發(fā)效率,在SpringCloud微服務架構(gòu)中,MyBatisPlus通過插件機制和自動生成代碼功能,有效支持企業(yè)級應用和分布式系統(tǒng)的開發(fā)
    2024-10-10
  • java中rss解析器(rome.jar和jdom.jar)示例

    java中rss解析器(rome.jar和jdom.jar)示例

    這篇文章主要介紹了java中rss解析器(rome.jar和jdom.jar)示例,需要的朋友可以參考下
    2014-03-03
  • 關于Java創(chuàng)建線程的2種方式以及對比

    關于Java創(chuàng)建線程的2種方式以及對比

    這篇文章主要給大家介紹了關于Java創(chuàng)建線程的2種方式以及對比的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • java隨機數(shù)生成具體實現(xiàn)代碼

    java隨機數(shù)生成具體實現(xiàn)代碼

    這篇文章主要為大家分享了java隨機數(shù)生成具體實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Java字符串編碼知識點詳解介紹

    Java字符串編碼知識點詳解介紹

    在本篇內(nèi)容了小編給大家詳細分析了關于Java字符串編碼的知識點并對實例做了分析,有興趣的朋友們跟著學習下。
    2022-11-11
  • SpringBoot使用ResponseBodyEmitter處理流式日志和進度條

    SpringBoot使用ResponseBodyEmitter處理流式日志和進度條

    這篇文章主要為大家詳細介紹了SpringBoot如何使用ResponseBodyEmitter處理流式日志和進度條,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-02-02

最新評論

军事| 阿鲁科尔沁旗| 阿拉善右旗| 抚松县| 韩城市| 和田市| 崇阳县| 元阳县| 广南县| 洛隆县| 灵山县| 平邑县| 随州市| 长泰县| 临沂市| 五寨县| 博湖县| 体育| 普洱| 肃宁县| 永修县| 盱眙县| 沂源县| 辽宁省| 廊坊市| 武宣县| 麻江县| 嘉定区| 庄浪县| 三明市| 扎囊县| 静安区| 台湾省| 神木县| 汕尾市| 巴彦县| 巫山县| 汉阴县| 密云县| 老河口市| 萍乡市|