下面我来为你详细讲解SSM框架实现分页和搜索分页的完整攻略。
一、前期准备
在实现SSM框架的分页和搜索分页功能前,需要进行一些前期准备工作:
-
导入MyBatis和Spring相关依赖。
-
创建数据库表,并插入数据。
-
配置数据源和MyBatis等相关配置文件。
-
定义Mapper和Service层接口及其实现类。
-
编写Controller层接口。
二、实现分页功能
在SSM框架中,实现分页功能需要用到MyBatis的插件PageHelper。
- 在pom.xml中增加以下依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.11</version>
</dependency>
- 在Mybatis配置文件中增加以下配置:
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="helperDialect" value="mysql"/>
<property name="reasonable" value="true"/>
<property name="supportMethodsArguments" value="true"/>
<property name="params" value="pageNum=pageHelper,pageSize=pageHelper"/>
</plugin>
</plugins>
- 在Service层接口方法中,调用PageHelper.startPage(pageNum, pageSize)方法即可实现分页查询:
@Override
public PageInfo<User> getUserList(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userMapper.getUserList();
PageInfo<User> pageInfo = new PageInfo<>(userList);
return pageInfo;
}
- 在Controller层接口方法中,返回分页查询结果即可:
@GetMapping("/user/list")
public ResponseEntity<PageInfo<User>> getUserList(@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
PageInfo<User> pageInfo = userService.getUserList(pageNum, pageSize);
return ResponseEntity.ok(pageInfo);
}
三、实现搜索分页功能
在SSM框架中,实现搜索分页功能需要用到MyBatis的动态SQL。
- 在Mapper文件中,定义动态SQL查询语句:
<select id="searchUserList"
parameterType="User"
resultType="User">
select *
from user
<where>
<if test="name != null">
and name like concat('%', #{name}, '%')
</if>
<if test="age != null">
and age = #{age}
</if>
</where>
</select>
- 在Service层接口方法中,调用PageHelper.startPage(pageNum, pageSize)方法和动态SQL查询语句即可实现搜索分页查询:
@Override
public PageInfo<User> searchUserList(int pageNum, int pageSize, User user) {
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userMapper.searchUserList(user);
PageInfo<User> pageInfo = new PageInfo<>(userList);
return pageInfo;
}
- 在Controller层接口方法中,返回搜索分页查询结果即可:
@PostMapping("/user/search")
public ResponseEntity<PageInfo<User>> searchUserList(@RequestBody User user,
@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
PageInfo<User> pageInfo = userService.searchUserList(pageNum, pageSize, user);
return ResponseEntity.ok(pageInfo);
}
以上就是SSM框架实现分页和搜索分页的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SSM框架实现分页和搜索分页的示例代码 - Python技术站