MyBatis获取参数值的两种方式

**MyBatis获取参数值的两种方式:KaTeX parse error: Expected 'EOF', got '#' at position 4: {}和#̲{}** 1、{}的本质就是字符串拼接,#{}的本质就是占位符赋值请添加图片描述请添加图片描述

2、${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号。
3、#{}表示一个占位符即 ? ,可以有效防止sql注入。在使用时不需要关心参数值的类型,mybatis会自动进行java类型和jdbc类型的转换。
4、#{}可以接收简单类型值或pojo属性值,如果传入简单类型值,#{}括号中可以是任意名称。

`<!-- 根据名称模糊查询用户信息 -->
 <select id="findUserById" parameterType="String" resultType="user">
  select * from user where username like 		CONCAT(CONCAT('%', #{name}), '%')
 </select>`

5、${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换。
可 以 接 收 简 单 类 型 值 或 p o j o 属 性 值 , 如 果 传 入 简 单 类 型 值 , {}可以接收简单类型值或pojo属性值,如果传入简单类型值, pojo{}括号中名称只能是value。

<!-- 根据名称模糊查询用户信息 -->
 <select id="selectUserByName" parameterType="string" resultType="user">
  select * from user where username like '%${value}%'
 </select>

6、对于order by排序,使用#{}将无法实现功能,应该写成如下形式:ORDER BY ${columnName}
7、对于mybatis逆向工程生成的代码中,进行模糊查询调用andXxxLike()方法时,需要手动加%,如下:

CustomerExample customerExample=new CustomerExample();
customerExample.or().andNameLike("%"+name+"%");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值