JAVA SSM实现分页查询数据
时间: 2024-01-14 18:03:15 浏览: 79
可以使用 MyBatis 分页插件来实现分页查询,使用 PageHelper.startPage() 方法指定当前页码和每页显示的记录数,然后再查询数据即可。示例代码如下:
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userMapper.selectByExample(example);
PageInfo<User> pageInfo = new PageInfo<>(userList);
return pageInfo;
相关问题
使用ssm框架实现分页查询功能代码实现
好的,下面是使用SSM框架实现分页查询功能的代码实现。以下示例使用PageHelper插件进行分页,Mapper接口使用注解方式配置SQL语句。
1. 在Spring配置文件中配置MyBatis分页插件和数据源等相关信息。
```xml
<!-- MyBatis分页插件配置 -->
<bean id="pageHelper" class="com.github.pagehelper.PageHelper">
<property name="properties">
<value>
dialect=mysql
reasonable=true
supportMethodsArguments=true
params=count=countSql
autoRuntimeDialect=true
</value>
</property>
</bean>
<!-- 数据源配置 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
<!-- MyBatis SqlSessionFactory 配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
<property name="plugins">
<array>
<ref bean="pageHelper"/>
</array>
</property>
</bean>
<!-- MyBatis MapperScannerConfigurer 配置 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
```
2. 在Mapper接口中定义查询方法,使用MyBatis注解方式配置SQL语句,同时使用PageHelper插件提供的分页参数注解(例如@PageNum、@PageSize)。
```java
public interface UserMapper {
/**
* 根据条件查询用户列表
* @param name 用户名,模糊查询
* @param pageNum 当前页码
* @param pageSize 每页显示多少条数据
* @return 用户列表
*/
@Select("select * from user where name like '%${name}%'")
List<User> findUsersByName(@Param("name") String name, @PageNum int pageNum, @PageSize int pageSize);
}
```
3. 在Service层中调用Mapper接口中定义的查询方法,同时传入分页参数。
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public Page<User> findUsersByName(String name, int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize); // 设置分页参数
List<User> userList = userMapper.findUsersByName(name, pageNum, pageSize); // 调用Mapper接口中定义的查询方法
return (Page<User>) userList;
}
}
```
4. 在Controller层中获取用户传递的分页参数(例如当前页码、每页显示多少条数据等),并且调用Service层中的方法进行分页查询。
```java
@Controller
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public String findUsersByName(Model model,
@RequestParam(name = "name", required = false, defaultValue = "") String name,
@RequestParam(name = "pageNum", required = false, defaultValue = "1") int pageNum,
@RequestParam(name = "pageSize", required = false, defaultValue = "10") int pageSize) {
Page<User> userPage = userService.findUsersByName(name, pageNum, pageSize); // 调用Service层中的方法进行分页查询
model.addAttribute("userPage", userPage);
return "userList";
}
}
```
5. 在前端页面中展示查询结果,并且展示分页信息(例如总共有多少条数据、当前在第几页、每页显示多少条数据等),同时提供分页导航功能。
```html
<!-- userList.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户列表</title>
</head>
<body>
<h1>用户列表</h1>
<form action="/users" method="get">
<input type="text" name="name" value="${param.name}"/>
<input type="submit" value="搜索"/>
</form>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<c:forEach items="${userPage.list}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
</tr>
</c:forEach>
</tbody>
</table>
<div>
<span>共${userPage.total}条数据</span>
<span>当前在第${userPage.pageNum}页</span>
<span>每页${userPage.pageSize}条数据</span>
<c:if test="${userPage.hasPreviousPage}">
<a href="/users?pageNum=${userPage.prePage}&pageSize=${userPage.pageSize}&name=${param.name}">上一页</a>
</c:if>
<c:if test="${userPage.hasNextPage}">
<a href="/users?pageNum=${userPage.nextPage}&pageSize=${userPage.pageSize}&name=${param.name}">下一页</a>
</c:if>
</div>
</body>
</html>
```
以上就是使用SSM框架实现分页查询功能的代码实现。
ssm和pagehelper分页查询
SSM是指Spring+SpringMVC+MyBatis的组合,是一种常用的Java Web开发框架。其中,Spring是一个轻量级的Java开发框架,提供了依赖注入和面向切面编程等功能;SpringMVC是基于Spring的MVC框架,用于处理Web请求和响应;MyBatis是一个持久层框架,用于与数据库进行交互。
PageHelper是一个用于MyBatis的分页插件,可以方便地实现数据库查询结果的分页功能。它提供了一系列的分页方法,可以根据需求进行灵活的配置。使用PageHelper,我们可以通过简单的配置和调用,实现数据库查询结果的分页展示。
使用SSM和PageHelper进行分页查询的步骤如下:
1. 在Spring配置文件中配置数据源和MyBatis的相关配置。
2. 创建Mapper接口,并在接口中定义需要执行的SQL语句。
3. 创建Mapper.xml文件,编写SQL语句,并将其与Mapper接口进行映射。
4. 在Service层中调用Mapper接口中定义的方法,获取查询结果。
5. 在Controller层中接收前端传递的分页参数,并调用Service层的方法进行查询。
6. 在查询方法中使用PageHelper.startPage()方法设置分页参数,然后执行查询操作。
7. 将查询结果封装为PageInfo对象,并返回给前端。
阅读全文