有三种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无法判断类型导致的错误.