ssm分页以后模糊查询
时间: 2023-07-18 11:31:42 浏览: 102
mybatis分页及模糊查询功能实现
实现SSM分页模糊查询,需要按照以下步骤进行操作:
1. 在MyBatis的Mapper文件中,定义一个查询语句,用于执行模糊查询。可以使用like关键字来实现模糊查询,同时使用limit关键字来实现分页查询。
例如,查询用户表中用户名包含关键字“张三”的记录,同时返回第1页,每页显示10条记录的SQL语句如下:
```
<select id="getUserListByKeyword" parameterType="String" resultMap="userMap">
select * from user
where username like CONCAT('%',#{keyword},'%')
limit #{start}, #{pageSize}
</select>
```
其中,#{keyword}表示查询关键字,#{start}表示查询起始位置,#{pageSize}表示每页显示记录数。
2. 在DAO层中,定义一个方法,用于调用MyBatis的Mapper文件中的查询语句。同时,传入查询关键字、查询起始位置和每页显示记录数等参数。
例如,定义一个UserDAO接口,包含一个getUserListByKeyword方法:
```
public interface UserDAO {
List<User> getUserListByKeyword(@Param("keyword")String keyword, @Param("start")int start, @Param("pageSize")int pageSize);
}
```
3. 在Service层中,调用DAO层的方法,获取查询结果。同时,根据查询结果和分页参数,计算出总页数、当前页数等信息。
例如,定义一个UserService接口,包含一个getUserListByKeyword方法:
```
public interface UserService {
Page<User> getUserListByKeyword(String keyword, int currentPage, int pageSize);
}
```
其中,Page是一个自定义的分页类,用于封装分页信息和查询结果。具体实现可以参考以下代码:
```
public class Page<T> {
private int currentPage; // 当前页数
private int pageSize; // 每页显示记录数
private int totalPage; // 总页数
private int totalCount; // 总记录数
private List<T> list; // 查询结果
// 省略 getter/setter 方法
}
```
4. 在Controller层中,接收用户输入的查询关键字、当前页数和每页显示记录数等参数,调用Service层的方法,获取查询结果和分页信息。最后,将结果封装成JSON格式返回给前端页面。
例如,定义一个UserController类,包含一个getUserListByKeyword方法:
```
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public Page<User> getUserListByKeyword(@RequestParam("keyword")String keyword, @RequestParam("currentPage")int currentPage, @RequestParam("pageSize")int pageSize) {
return userService.getUserListByKeyword(keyword, currentPage, pageSize);
}
}
```
以上就是SSM分页模糊查询的实现步骤,可以根据实际情况进行适当调整和优化。
阅读全文