在 MyBatis 中,可以使用${}或#{}来拼接 SQL 语句中的参数 。在进行模糊查询时,需要使用通配符 % 表示任意字符,具体写法如下:
- 使用${}:
<select id="selectUsersByName" resultType="User">SELECT * FROM user WHERE name LIKE '%${name}%' </select>
在这种方式下,${}会直接将传入的参数拼接到 SQL 语句中,容易受到 SQL 注入攻击 。- 使用#{}:
<select id="selectUsersByName" resultType="User">SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%') </select>
在这种方式下,#{}会使用预编译语句来处理参数,可以防止 SQL 注入攻击 。同时,MyBatis 还提供了CONCAT()函数来连接字符串,避免使用字符串拼接运算符+ 。需要注意的是,使用#{}时,如果传入的参数是 null,MyBatis 会将它转换成一个空字符串 。因此,在使用模糊查询时,需要对参数进行非空判断,避免查询结果异常 。
推荐阅读
- Google称内部全在用Kotlin搞安卓开发,体验碾压Java
- 如何在自己的电脑里搭建chatGPT
- 科学家揭开元古宙地层“珍珠项链”存在之谜
- 中国最正宗腊肉在哪个地方?看看这4个城市,你的家乡有没有上榜
- 球迷回来了!中超首轮上座率超过2019年,多场比赛爆满
- 在北方最受欢迎的十大南方美食,品味南方美食文化
- 三山五岳“三山”指哪三山,一个在安徽,一个在江西,一个在浙江
- 中年人再就业,这三个职业“没面子”,却“有钱途”。
- 鸡肫怎做好吃
- 减肥每天吃多少鸡胸肉