003Mybatis传参

mybatis中#和$的区别_mybatis中$和井号区别_码农小安的博客-CSDN博客

默认的别名


  1.   参数名本身
  2.   param1, param2
  SysUser selectByUserIdAndUsername(int user_id, String userName);
  <select id="selectByUserIdAndUsername" resultType="com.du.bean.manytomany.SysUser">
    select *
   		 from sys_user
    		 where user_id = #{user_id}
     	 and user_name = #{userName}
</select>

@Param 参数别名传递

索引

  按照参数的顺序,从0开始 

 List<Blog> selectBlogByPage(int offset, int pagesize);

 <select id="selectBlogByPage" resultMap="blogResultMap">

        select * from blog limit #{0}, #{1}

 </select>

Entity,Map

  SysUser selectByUser(SysUser sysUser);

 <select id="selectByUser" resultType="com.du.bean.manytomany.SysUser">

       select *
        from sys_user
        where user_code=#{userCode,jdbcType=VARCHAR}

</select>

参数转换


  1.     参数也可以指定一个特殊的数据类型
  2.     #{property,javaType=int,jdbcType=NUMERIC}
  3.   #{height,javaType=double,jdbcType=NUMERIC,numericScale=2}

    和 MyBatis 的其它部分一样,几乎总是可以根据参数对象的类型确定 javaType,除非该对象是一个 HashMap。这个时候,你需要显式指定 javaType 来确保正确的类型处理器(TypeHandler)被使用。

  自定义类型转换

    #{age,javaType=int,jdbcType=NUMERIC,typeHandler=MyTypeHandler}

常见问题

  插入语句中存在空值


    当列中存在空值时,必须指定参数对象的类型

    JDBC 要求,如果一个列允许使用 null 值,并且会使用值为 null 的参数,就必须要指定 JDBC 类型(jdbcType)

<set>
    <if test="name != null">
        name =#{name,jdbcType=VARCHAR},
    </if>
</set>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值