Mybatis基础---常用SQL映射标签、多参数设置、resultMap(自定义映射)

这篇博客详细介绍了Mybatis中的SQL映射标签,包括if元素在参数判断中的应用,choose、when、otherwise元素的选择逻辑,foreach元素在集合迭代中的作用,以及resultMap元素在自定义映射实体和集合属性时的使用,特别强调了多参数设置和Map的使用技巧。
摘要由CSDN通过智能技术生成

一、if 元素

如果什么 …..那么什么…….. ——->通常用于判断参数,进行sql语句的动态拼接

1、 传入的参数是一个 实体对象 :
<select id="selectUserLike" resultType="entity.User"  parameterType="entity.User">
        select * from user where 1=1
        <!-- parameterType指传入的参数类型  这里传入的是一个实体类 -->
        <!-- if判断时需要保证你 test="loginName!=null and loginName!=''"  中判断的条件一定是实体类的属性-->
        <!-- 即loginName 是 实体entity.User 中的一个属性  -->
        <if test="loginName!=null and loginName!=''">
            and loginName =#{loginName}
        </if>
        <if test="userId!=null">
            <!--1.处理特殊字符 CDATA节中的内容不会做特殊处理 --> 
            <!--2.处理特殊字符(&lt是< 号的意思) and userid&lt;#{userId} --> 
            <![CDATA[and userid<#{userId}]]>
        </if>
    </select>
2、 传入的参数是一个或多个 参数(参数注解 @param) :
<!-- 根据id 查询一个用户 -->
<select id="selectUserById" resultType="entity.User">
    select * from user  where 1=1
    <if test="id!=null">
        and userid=#{id}    
    </if>
</select>

转换成使用接口的方式——->接口( UserMapper.xml 对应的接口 ) 中的方法为

/**
 *根据用户id 查询用户
 */
public User selectUserById(@param("id") int userId);

//映射的sql 语句中并未表明入参类型 且 判断的变量是 id , 此时接口中的变量使用的是 userId(语义化更强)
//为了避免出现异常情况  此时应当使用注解 (@param("id"))---->注解的变量名和sql映射中判断的变量名要相同
//注解相当于 为接口中的参数设置了一个key 这个key和对应sql映射中的if 判断的变量(id)相同

//当然多个参数也可使用 注解(@param(" ")) 的方式
3、 多参数 —–>Map(集合) :

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值