用springboot和vue和mybatis的分页插件完成前后端分离的分页查询功能
时间: 2024-05-15 09:18:34 浏览: 177
Springboot+Mybatis-plus+Vue项目内容:前后端分离的管理系统
好的,这是一个比较具体的问题,需要详细解答,我尽量简单明了地回答。
首先,使用Spring Boot可以实现后端的快速开发,它提供了很多方便的注解和模板,可以大大减少开发工作量。使用MyBatis可以方便地操作数据库,而分页插件可以实现分页查询功能。至于前端,Vue是一种非常流行的JavaScript框架,可以帮助我们快速构建交互式的前端页面。
下面是具体的步骤:
1. 后端开发
首先,需要在pom.xml中引入mybatis分页插件的依赖:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
```
然后,在Spring Boot的配置文件中添加如下配置:
```yaml
mybatis:
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
plugins:
- com.github.pagehelper.PageInterceptor
```
这里配置了MyBatis的mapper文件路径、开启下划线转驼峰命名法、以及引入了MyBatis分页插件。
接着,需要在mapper文件中实现分页查询功能,在xml文件中添加如下代码:
```xml
<select id="findUsers" resultMap="BaseResultMap">
select * from user
<where>
<if test="name != null and name != ''">
name like concat('%', #{name}, '%')
</if>
</where>
order by id desc
<if test="start != null and end != null">
limit #{start}, #{end}
</if>
</select>
```
这里使用了MyBatis的动态SQL语法,根据传入的参数进行条件查询,并且通过limit关键字实现分页查询。
最后,在Controller中实现接口,返回分页查询的结果:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public PageInfo<User> findUsers(int pageNum, int pageSize, String name) {
PageHelper.startPage(pageNum, pageSize);
List<User> users = userService.findUsers(name);
return new PageInfo<>(users);
}
}
```
这里使用了PageHelper.startPage方法设置分页查询的参数,然后调用UserService的findUsers方法查询数据库,并将结果封装在PageInfo中返回。
2. 前端开发
在前端开发中,需要使用Vue框架构建页面,并使用axios库发送请求获取数据。
首先,在Vue组件中定义分页的参数和数据:
```javascript
data() {
return {
pageNum: 1,
pageSize: 10,
total: 0,
users: []
}
}
```
然后,在组件的created方法中发送请求获取数据:
```javascript
created() {
this.getUsers()
},
methods: {
getUsers() {
axios.get('/user/list', {
params: {
pageNum: this.pageNum,
pageSize: this.pageSize,
name: this.name
}
}).then(res => {
this.users = res.data.list
this.total = res.data.total
})
}
}
```
这里使用axios库发送GET请求,传入分页参数pageNum和pageSize,并且根据name进行条件查询。在请求成功后,将返回的数据赋值给组件的数据users和total。
最后,在组件的模板中显示分页结果:
```html
<el-table :data="users">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
</el-table>
<el-pagination
:current-page="pageNum"
:page-size="pageSize"
:total="total"
@current-change="getUsers">
</el-pagination>
```
这里使用了ElementUI库中的表格和分页组件,将查询到的用户数据展示在表格中,并且根据total和pageSize计算分页页数,通过@current-change事件监听分页的变化,调用getUsers方法获取对应的数据。
以上就是使用Spring Boot、Vue和MyBatis分页插件完成前后端分离的分页查询功能的步骤。
阅读全文