mybatis 传递参数 like查询
时间: 2024-07-24 07:01:18 浏览: 80
MyBatis 中的 `LIKE` 查询通常用于在数据库表中查找包含指定模式的数据。当你需要动态生成 SQL 语句并且希望匹配字符串中的部分模式时,可以使用 `%` 或 `_` 符号:
1. `%` 表示任意字符序列(包括零字符),常用于模糊搜索,如 `SELECT * FROM table WHERE column LIKE '%pattern%'` 可以查找所有列名中包含 "pattern" 的记录。
2. `_` 表示单个字符,用于精确匹配一个位置上的字符,例如 `SELECT * FROM table WHERE column LIKE 'abc_'` 只会匹配以 "abc" 开始的记录,第四位是任意字符。
在 MyBatis 中,你可以使用参数化查询来安全地插入占位符(通常是 `#{}` 或 `${}`),然后将实际的值通过 `PreparedStatement` 设置进去。下面是一个例子:
```xml
<select id="selectByPattern" parameterType="map" resultType="YourEntity">
SELECT * FROM your_table
WHERE column LIKE #{pattern}
</select>
// 调用时传入参数
Map<String, Object> params = new HashMap<>();
params.put("pattern", "%searchTerm%");
List<YourEntity> results = sqlSession.selectList("selectByPattern", params);
```
在这个例子中,`#{pattern}` 将会被 `Pattern` 对象替换,这样可以避免SQL注入攻击,并且可以根据不同的 `searchTerm` 参数生成不同的 SQL 语句。
阅读全文