**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+"%");
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/63361.html