mybatis 使用记录

 1、mybatis in的使用格式

<!--获取面积  getSumAreaByForm   要使用$  原因#字符串中的,不被识别 -->
<select id="getSumAreaByForm"  resultType="java.util.Map">
    select * from base_house
     <where>
        isdel=0
         <if test="quarter_name!=null and quarter_name!=''  ">
           and  quarter_name in (${quarter_name})
         </if>
         <if test="build_no!=null and build_no!=''  ">
             and build_no in (${build_no})
         </if>
     </where>

</select>


  

@ApiOperation("app服务记录删除")
@Log(title = "app服务记录删除")
@DeleteMapping("/api/delAppInterviewRecord")
public AjaxResult delAppInterviewRecord(@RequestBody(required = false) Long[] irIds) {

    return toAjax(interviewRecordService.deleteInterviewRecordByIds(irIds));
}

<delete id="deleteInterviewRecordByIds" parameterType="String">
    delete from interview_record where ir_id in
    <foreach item="irId" collection="array" open="(" separator="," close=")">
        #{irId}
    </foreach>
</delete>

 

 2、if 中对于时间类型、int double类型 ,不用设置!=‘’

 

 3、mybatis   foreach中嵌套if的使用

public List<VolIntegral> getVolIntegralByVtIdList(@Param("inIds")List<VolIntegral> inIds);

 <select id="getVolIntegralByVtIdList" parameterType="List" resultMap="VolIntegralResult">
        <include refid="selectVolIntegralVo"/>
        <where>

            <foreach collection="list" item="volIntegral"  >
                <if test="volIntegral.vtId !=null">
                    or in_vt_id = #{volIntegral.vtId}
                </if>
                <if test="volIntegral.inAccessStatus!=null">
                    and in_access_status = #{volIntegral.inAccessStatus}
                </if>
            </foreach>
        </where>

 </select>

 

属性描述
item 循环体中的具体对象。支持属性的点路径访问,如item.age,item.info.details。具体说明:在list和数组中是其中的对象,在map中是value。该参数为必选。
collection

要做foreach的对象,作为入参时,List<?>对象默认用list代替作为键,数组对象有array代替作为键,Map对象用map代替作为键。

当然在作为入参时可以使用@Param(“keyName”)来设置键,设置keyName后,list,array,map将会失效。

除了入参这种情况外,还有一种作为参数对象的某个字段的时候。

举个例子:如果User有属性List ids。入参是User对象,那么这个collection = "ids"如果User有属性Ids ids;其中Ids是个对象,Ids有个属性List id;入参是User对象,那么collection = "ids.id"上面只是举例,具体collection等于什么,就看你想对那个元素做循环。该参数为必选。

separator 元素之间的分隔符,例如在in()的时候,separator=","会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,如in(1,2,)这样。该参数可选。
open foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。该参数可选。
close foreach代码的关闭符号,一般是)和open="("合用。常用在in(),values()时。该参数可选。
index 在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选。
 
 

 

posted @ 2022-08-24 09:10  张载zz  阅读(27)  评论(0编辑  收藏  举报