spring boot处理mysql模糊查询时包含%
时间: 2023-07-29 14:10:27 浏览: 195
毕业设计,基于spring boot+mybatis+mysql开发的课程评价系统,内含完整源码+数据库脚本+说明
在进行模糊查询时,如果需要查询的字符串中包含 `%`,则需要对其进行转义。在使用 Spring Boot 操作 MySQL 数据库时,可以使用 `org.springframework.jdbc.core.JdbcTemplate` 类来执行 SQL 语句。
以下是一个使用 `JdbcTemplate` 进行模糊查询的示例代码:
```java
public List<User> findUsersByUsername(String username) {
String sql = "SELECT * FROM users WHERE username LIKE ?";
String usernameWithEscape = username.replace("%", "\\%") + "%";
return jdbcTemplate.query(sql, new Object[]{usernameWithEscape}, new BeanPropertyRowMapper<>(User.class));
}
```
在上述代码中,我们首先定义了一个 SQL 语句,使用 `LIKE` 关键字进行模糊查询。然后,我们使用 `String.replace()` 方法将查询字符串中的 `%` 转义为 `\%`,并在查询字符串的末尾添加 `%`,以便在查询时能够匹配到所有符合条件的记录。最后,我们使用 `jdbcTemplate.query()` 方法执行 SQL 查询,并将结果映射为一个 `User` 对象的列表。
需要注意的是,在进行模糊查询时,如果需要查询的字符串中包含 `_`,也需要进行转义,将其替换为 `\_`,以避免被误认为是通配符。
阅读全文