spring mybatis 写一段模糊查询的代码
时间: 2024-02-09 09:08:08 浏览: 29
假设我们有一个表`user`,需要根据用户输入的关键词`keyword`进行模糊查询,可以使用以下代码实现:
1. 定义mapper接口方法
```java
public interface UserMapper {
List<User> fuzzySearch(@Param("keyword") String keyword);
}
```
2. 在`mapper.xml`文件中编写SQL语句
```xml
<select id="fuzzySearch" resultType="com.example.User">
SELECT * FROM user
WHERE username LIKE CONCAT('%', #{keyword}, '%')
</select>
```
其中,`#{keyword}`是Mybatis中的占位符,可以防止SQL注入攻击。`CONCAT()`函数用于拼接字符串。
3. 在Service层中调用mapper接口方法
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> fuzzySearch(String keyword) {
return userMapper.fuzzySearch(keyword);
}
}
```
在Controller层中调用Service层方法即可实现模糊查询:
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public List<User> fuzzySearch(@RequestParam("keyword") String keyword) {
return userService.fuzzySearch(keyword);
}
}
```
以上代码中,`@RequestParam`注解用于获取HTTP请求参数。模糊查询的结果将以JSON格式返回。