mybatis 传递参数的方法总结

时间:2021-10-31 16:46:46

  有三种mybatis传递参数的方式:

第一种

mybatis传入参数是有序号的,可以直接用序号取得参数

User selectUser(String name,String area);

可以在xml配置文件中写

<select id="selectUser" resultMap="BaseResultMap">
select * from user_user_t where user_name = #{0} and user_area=#{1}
</select>

#{0} 表示传递过来的第一参数 . 也就是说#{N} 就可以获得传递过来的第N+1个参数

  第二种 直接传递过来的是一个封装好的对象,无论Map,还是普通的object 或者是自己写的对象

    void addMembershipCard(MembershipCard membershipCard);

xml配置如下

<insert id="addMembershipCard" parameterType="MembershipCard">
insert into membership_card(id,user_id,shop_id,receive,create_tm)
values(#{id},#{userId},#{shopId},0,now())
</insert>

第三种是:利用注解

下面是别人例子

Public User selectUser(@param(“userName”)Stringname,@param(“userArea”)String area);
<select id=" selectUser" resultMap="BaseResultMap">
select * from user_user_t where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR}
</select>

这样的方式比较直观,并且不用作太多其他的工作.如果参数数量比较少的话,建议用这个.

 

关于 jdbcType 一般用于数据插入的时候,防止为null无法判断类型导致的错误.