Mybatis动态sql语句

在实际开发过程中,我们经常会遇到使用动态sql语句的时候,例如,我们可以根据用户的id查询用户,也可以根据账号查询,也可以根据角色查询。。。。这个时候,如果我们为每一种查询都编写一条sql语句,那可以说是撞死的心都有了,而动态sql挽救了我们脆弱的心灵,有效的解决了这个问题。

相信如果大家看完了我Mybatis入门的博客,对Mybatis应该已经有了初步了解,那么我们人狠话不多,直接上代码,也要仔细看注释哦!

<!--namespace一定要是你接口的全命名哦-->
<mapper namespace="com.lsc.mapper.UserMapper">


<!--通过用户id查询用户,id要和接口的方法名一致!,
resultType为返回类型,parameterType为参数类型,
记得要写全包名,我这里是在配置文件中配置配置了别名,代码如下: 
<typeAliases>
    <typeAlias type="com.lsc.domain.User" alias="user"/>
</typeAliases>-->
    
<!--    collection为集合类型,open是以什么开始,close是以什么结束,item是集合里我们给取的别名,separator是分隔符,
原本的sql语句应为:select * from user where id in(1,2,3),此处的1,2,3是我要查询的id集合-->
    <select id="findUserByIds" resultType="user" parameterType="list">
        select * from user
        <where>
            <foreach collection="list" open="id in(" close=")" item="id" separator=",">
                #{id}
            </foreach>
        </where>
    </select>



<!--因为我们不知道要根据几个条件进行查询,所以此处我们使用if-->
    <select id="findUserByParm" parameterType="user" resultType="user">
        select * from user
        <where>
            <if test="id!=0">
                and id=#{id}
            </if>
            <if test="username!=null">
                and sername=#{username}
            </if>
            <if test="password!=null">
                and password=#{password}
            </if>
        </where>
    </select>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值