Mybatis各种参数用法

1.只传单个String对象

<select id="findUser" parameterType="String" resultType="com.example.User">
        select * from user_data where sex='M' 
        <choose>
            <when test="_parameter != null "> AND user_id=#{userId} </when>
            <otherwise> AND user_id=''</otherwise>
        </choose>
        and rownum &lt;= 200
    </select>

2.传多个String对象

<select id="findUser" resultType="User">
  select * from user_data where user_id = #{0} and user_name = #{1}  

</select>  

3.传list对象

<select id="findUsers" parameterType="java.util.List" resultType="com.example.User">
        select * from user_data where sex='M'  AND user_id in
        <foreach collection="list" item="user_id" index="index" open="("
            close=")" separator=",">
            #{user_id}
        </foreach>
        and rownum &lt;= 200
    </select>

4.传普通对象

<select id="findUsers" parameterType="com.example.User"
        resultType="com.example.User">
        Select* from user_data
        <where>
            <if test="user_id !=null "> user_id=#{user_id} </if>
        </where> 

    </select>

User类:

public class User extends BaseResult{
       public String user_id;
       public String user_name;
       public String e_mail;
       public String password;

}

其中test后的和大括号里的user_id都是对应User类中的字段,“=#”前面那个user_id对应user_data中的栏位

5.resultMap用法
我们平常返回的resultType为POJO类,但是有时我们只需要部分字段,那就用到resultMap替代resultType

<resultMap id="userResultMap" type="com.example.User">
    <result property="user_id" column="user_id"/>
    <result property="user_name" column="user_name"/>
</resultMap 

上面的property后的user_id是对应User类中的字段,column中的user_id对应user_data中的栏位
select标签:

<select id="findUsers" parameterType="com.example.User"
        resultMap="userResultMap">
        Select* from user_data
        <where>
            <if test="user_id !=null "> user_id=#{user_id} </if>
        </where> 

    </select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值