java通用分页

目录

一,PageBean

二,反射通用后台查询方法

三,通用的分页后台查询方法

四,junit4


前言:通用分页的原意义:能够简化分页相关功能的开发
目的:极大优化代码

 

分页代码比较:


原有的分页代码:
1.存在大量重复分页条的HTML代码
2.将上一次的查询条件带到下一次,隐藏的from表单HTML
3.后台有大量的代码是重复的

1.按原始方式写一个查询
存在问题:①有重复代码
②分页参数不清晰
解决方案:①baseDao  ②pagebean

2.BaseDao
存在问题:
不同人调用,处理resultset方式是不一样的

解决方案:通过回调函数解决 callback

3.callback

4.通用分页
原始SQL:调用方拼装好的sql
分页sql:页面要展示数据的sql,第N也的数据
符合条件的总记录数sql:时为了拿到总录数,计算总页数

一,PageBean

首先把该有的文件放到util包里面

<如图所示>

分析:DBAccess为数据库辅助类

EncodingFiter为中文乱码处理

PageBean为分页的工具类

StringUtils为判空

1.为什么封装

方便使用

2.封装的优点

精简代码

《代码演示》

package com.dengxiyan.util;

/**
 * 分页工具类
 *
 */
public class PageBean {

	private int page = 1;// 页码

	private int rows = 10;// 页大小

	private int total = 0;// 总记录数

	private boolean pagination = true;// 是否分页

	public PageBean() {
		super();
	}

	public int getPage() {
		return page;
	}

	public void setPage(int page) {
		this.page = page;
	}

	public int getRows() {
		return rows;
	}

	public void setRows(int rows) {
		this.rows = rows;
	}

	public int getTotal() {
		return total;
	}

	public void setTotal(int total) {
		this.total = total;
	}

	public void setTotal(String total) {
		this.total = Integer.parseInt(total);
	}

	public boolean isPagination() {
		return pagination;
	}

	public void setPagination(boolean pagination) {
		this.pagination = pagination;
	}

	/**
	 * 获得起始记录的下标
	 * 
	 * @return
	 */
	public int getStartIndex() {
		return (this.page - 1) * this.rows;
	}

	@Override
	public String toString() {
		return "PageBean [page=" + page + ", rows=" + rows + ", total=" + total + ", pagination=" + pagination + "]";
	}

}

二,反射通用后台查询方法

《代码演示》

BaseDao反射类

package com.dengxiyan.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis-Plus 是 Mybatis 的一个增强工具包,其中包含了一些常用的功能模块,如分页插件、自动代码生成、公共字段自动填充等。 下面是使用 Mybatis-Plus 分页插件的步骤: 1. 引入 Mybatis-Plus 的依赖 ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.x.x</version> </dependency> ``` 2. 配置分页插件 在 Mybatis 的配置文件中添加分页插件: ```xml <plugins> <!-- 分页插件 --> <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"> <property name="dialect" value="mysql"/> </plugin> </plugins> ``` 其中 `dialect` 属性指定了数据库类型,可以根据实际情况进行修改。 3. 在 Mapper 接口中定义分页查询方法 ```java public interface UserMapper extends BaseMapper<User> { IPage<User> selectPageVo(Page<?> page, @Param("state") Integer state); } ``` 其中 `IPage` 是 Mybatis-Plus 提供的分页结果类,`Page` 是 Mybatis-Plus 提供的分页查询参数类,`state` 是查询条件。 4. 在 Service 实现类中调用分页查询方法 ```java @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Autowired private UserMapper userMapper; @Override public IPage<User> selectPageVo(Integer pageNum, Integer pageSize, Integer state) { Page<User> page = new Page<>(pageNum, pageSize); return userMapper.selectPageVo(page, state); } } ``` 其中 `Page` 构造函数的参数为当前页数和每页显示条数,`selectPageVo` 方法的第一个参数为 `Page` 对象,第二个参数为查询条件。 5. 在 Controller 中调用 Service 方法进行分页查询 ```java @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/page") public IPage<User> selectPageVo(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @RequestParam Integer state) { return userService.selectPageVo(pageNum, pageSize, state); } } ``` 其中 `pageNum`、`pageSize` 和 `state` 分别为当前页数、每页显示条数和查询条件。 以上就是使用 Mybatis-Plus 分页插件的基本步骤,可以根据实际情况进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值