通用分页详细讲解(后端)

【vue+elementUI】分页后端分页+前端分页 项目结束,想着总结点东西,就又找了这个来总结一下,下次碰到,方便自己查找。 先说,后端分页吧: 后端分页,顾名思义,后端做好分页,你把要请求的页数和条数发送给他,他返回给前端,再渲染到页面上~结合elementUI的话,后端还需要把数据的总条数,即total作为一个字段返回,前端才能做分页嗷! 下面上大概的代码,方便自己和大家参考一下。 html: <div class="trend-Ar... 阅读详情

 今日金句

若有恒,何必三更眠五更起

最无益,莫过一日曝十日寒


目录

一、通用分页查询概述

二、通用分页查询讲解

2.1 未使用通用查询示例

2.2 通用查询实例

2.3 通用分页查询实例

 三、Junit

3.1概述

3.2用法

3.2.1配置环境

 3.2.2具体用法


一、通用分页查询概述

当需要对多种类型的数据进行分页功能时,如果每种类型都要写相对应的分页功能的话,那代码量太大了,其实这些分页功能存在大量重复性的代码,那我们可以将其中重复的代码提炼起来做个通用的封装分页方法,每次需要写分页查询功能时,不管是要对张三的内裤进行分页、还是要对李四的丝袜进行分页,只要继承通用分页查询方法即可减少大量代码。

二、通用分页查询讲解

准备:连接mysql、一个书籍实体类和非空判断方法类以及分页工具类

2.1 未使用通用查询示例

 非空判断方法类:

package com.xqx.util;

/**
 * 封装非空判断方法
 * 
 * @author W许潜行
 *
 */
public class StringUtils {
	// 私有的构造方法,保护此类不能在外部实例化
	private StringUtils() {
	}

	/**
	 * 如果字符串等于null或去空格后等于"",则返回true,否则返回false
	 * 
	 * @param s
	 * @return
	 */
	public static boolean isBlank(String s) {
		boolean b = false;
		if (null == s || s.trim().equals("")) {
			b = true;
		}
		return b;
	}
	
	/**
	 * 如果字符串不等于null或去空格后不等于"",则返回true,否则返回false
	 * 
	 * @param s
	 * @return
	 */
	public static boolean isNotBlank(String s) {
		return !isBlank(s);
	}

}

Dao方法类:

	/**原始查询方法
	 * @param book 书籍实体类
	 * @return
	 * @throws Exception
	 */
	public List<Book> queryBook(Book book) throws Exception {
		List<Book> list = new ArrayList<Book>();
		// 建立连接
		Connection conn = DBHepler.getConnection();
		String sql = "select *from t_mvc_book";
		String bname = book.getBname();
		if (!StringUtils.isBlank(bname)) {//如果非空
			sql += " where bname like '%" + bname + "%' ";
		}
		// 执行sql语句
		PreparedStatement ps = conn.prepareStatement(sql);
		// 结果集
		ResultSet rs = ps.executeQuery();
		while (rs.next()) {
			list.add(new Book(rs.getInt("bid"), rs.getString("bname"), rs.getFloat("price")));
		}

		return list;
	}
	public static void main(String[] args) throws Exception {
		System.out.println("==================原始查询======================");
		Book book = new Book();
		//查询名称
		book.setBname("圣墟");
		List<Book> listBook = new BookDao().queryBook(book,);
		for (Book bookList : listBook) {
			System.out.println(bookList);
		}

	}

打印结果:

2.2 通用查询实例

首先封装通用查询方法

	/**
	 * @param sql 语句
	 * @param classes 类
	 * @param pageBean
	 * @return
	 * @throws Exception
	 */
	public List<T> query(String sql,Class<T> classes ) throws Exception {
		List<T> list = new ArrayList<T>();
		// 建立连接
		Connection conn = DBHepler.getConnection();
		// 执行sql语句
		PreparedStatement ps = conn.prepareStatement(sql);
		// 结果集
		ResultSet rs = ps.executeQuery();
		
		while (rs.next()) {
			//类实例
			T t = classes.newInstance();
			//拿到所有属性
			Field[] fields = classes.getDeclaredFields();
			for (Field fieldName : fields) {
				//打开访问权限
				fieldName.setAccessible(true);
				//为t赋值
				fieldName.set(t, rs.getObject(fieldName.getName()));
			}
            //将t加到集合
			list.add(t);
		}

		return list;
	}

实现思路:

  1. 获取数据库连接。
  2. 创建PreparedStatement对象,执行SQL语句,获得结果集。
  3. 循环结果集,创建查询结果对象t,并将结果集中的数据赋值给t的属性。
  4. 将数据对象t添加到查询结果的List中。
  5. 返回List对象。

然后在dao方法内继承调用通用方法

	/**使用通用模糊查询方法
	 * @param book
	 * @return
	 * @throws Exception
	 */
	public List<Book> queryBook2(Book book) throws Exception {
		String sql = "select *from t_mvc_book";
		String bname = book.getBname();
		if (!StringUtils.isBlank(bname)) {
			sql += " where bname like '%" + bname + "%' ";
		}
		return super.query(sql, Book.class);
	}

测试

	public static void main(String[] args) throws Exception {
		System.out.println("==================通用查询======================");
		Book book = new Book();
		//查询名称
		book.setBname("圣墟");
		List<Book> listBook = new BookDao().queryBook2(book);
		for (Book bookList : listBook) {
			System.out.println(bookList);
		}

	}

打印结果:

后端开发员工管理——分页查询 2.Service层3.Mapper层。 阅读详情

相关推荐

05---前后端实现分页查询

后端mybatis实现分页功能,写业务代码;与前端交互,前端页面显示分页效果。

Zero摄氏度的博客 3219

后端中使用分页的几种方法(建议收藏)

前端会传来数据 , 表示第页显示条数据 因为我们是直接使用sql语句的,所以我们需要使参数满足limit语法 所以以下进行一定的计算 然后在我们查询sql的最后加上limit语句即可 插件Mybatis-PageHelper(拦截器原理) 需要依赖 该插件可以先让我们在层查询出列表后,过滤后再进行分页 第一步:设置分页 第二步:从层获取列表数据并自行过滤 第三步:分页封装 之后,里面的属性就可以供我们使用了。具体可以使用的数据如下 在service中对list进行拆分 使用的进行分页 MP官方插件 首先需要

qq_56769991的博客 1万+

vue实现通用分页控件,支持前端分页后端分页

如果是后端分页的话,就传递count属性值这个属性代表总数据量,需要用来计算总页数如果是前端做分页,就传递itemList属性值,这个属性表示总数据数组,根据这个数组的长度可以计算页数,根据页码可以对数组进行截取并把截取的单页数据通过自定义事件传递给父组件,父组件更新列表数据渲染itemList: {//数据列表},count: {//有值则分页功能后端实现},})通过自定义事件可以把页码或者是分页后的数据传递给父组件。

蒾酒的博客 1766

后端分页

文章目录使用分页分页分页后封装分页请求参数和返回参数 使用分页 如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的表单、多表分页。 如果你使用Maven,你只需要在pom.xml中添加下面的依赖: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId>

richest_qi的博客 821

JSP自定义通用分页详解

在实际javaweb项目开发过程中,由于需要展示的数据很多我们常常要用到分页功能,特别是针对不同数据表的分页,我们需要写许多重复的代码,所有我们设计一个通用分页功能,该方法能对象不同数据表进行分页,从而简化代码,提高开发效率。这里只编写一个实体进行测试,JUnit是一个Java编程语言的单元测试框架。它提供了一组注解和断言方法来编写和运行单元测试。

让优秀成为一种习惯! 2530

J2EE前端通用分页的实现

后端通用分页的基础上优化,实现前端通用分页

lijie1025的博客 204

通用分页的详解(Java后端常用)

2.我们通用的basedao里面要判断是否分页,如果不需要分页的话就进行“原sql”查询即可,需要分页,就将模糊查询的总记录数计算出来以及回显最终展示的数据即可。实现思路:先封装一个分页工具类保存页码、一页的条目、总记录数以及是否分页,然后当成参数传递到Dao层的分页方法中,再将需要查询的关键词或是类别传递即可,但是这种分页查询方式非常的冗杂,下面看一下实现的代码!:在管理系统或人才招聘网站中,需要展示大量的用户信息,使用JSP通用分页也可以方便地实现数据分页展示,方便管理员或招聘方查看和管理。

m0_73647713的博客 2056

java通用分页后端

除了以上的功能,JUnit 4还支持测试套件(@RunWith(Suite.class))、超时设置(@Test(timeout = xxx))、测试规则(@Rule)等高级特性,可以进行更灵活、高效的单元测试。

liaozhixiangjava的博客 6684

通用分页详解【上】

JUnit 4是Java语言中广泛使用的单元测试框架,它是JUnit框架的第四个主要版本。JUnit 4是一个用于编写和运行测试的框架,旨在让Java程序员能够更加方便地编写自动化测试和单元测试,并提高代码的质量和可读性。

weixin_74268571的博客 1383

J2EE后端通用分页的实现

J2EE通用分页实现【超详细

lijie1025的博客 206

通用分页-后台

JavaEE中实现通用分页功能是一个非常普遍的解决方案,这将大大提高Web应用程序的性能和体验。通用分页也可以帮助我们更好地处理业务求,因为用户经常需要在多个页面之间跳转,同时保持分页状态。掌握通用分页功能,可以使我们更加熟练和高效地编写代码,提高我们作为JavaEE开发人员的技能水平。

SAME_LOVE的博客 1277

通用分页精装版本(二)

通用分页精装版本前言通用分页的思路及步骤最终实现的效果所需要的所有类结构以及架包![在这里插入图片描述](https://img-blog.csdnimg.cn/20200610235334613.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21lbl9tYQ==,size_16,color_FFFFFF,t_70)代码实践使用的数据库表1.实体类

men_ma的博客 969

后端开发两种基础的分页方法

分页的学习

qq_41936938的博客 868

后端分页实现

分页实现 1、首先请求和响应实体继承分页类 下面展示一些 内联代码片。 2、并将前端传递来的pageIndex(当前页码)和pageSize(每页显示数量)封装对象传入DAO层 3、根据pageIndex 和 pageSize计算分页需要跳过的行数 跳过行数jumpCount = pageIndex>0?(pageIndex-1)*pageSize:0 (pageIndex-1)得到当前页面的上一个页面,然后乘以pageSize,得到最终跳过的条数; 4、在SQL中根据 limit jumpCount

qq_45254247的博客 2861

通过分页的详解(后端

DBAccess是一个通用数据库访问工具或库的名称。它是用于在应用程序中与数据库进行通信和交互的工具,提供了简单和方便的方式来执行数据库操作,如查询、插入、更新和删除等。DBAccess通常提供了一个API(应用程序编程接口),使开发者可以使用编程语言(如Java、Python、C#等)中的特定方法和函数来执行数据库操作。通过这些API,开发者可以连接到数据库服务器,发送SQL查询或命令,读取和写入数据,以及处理数据库事务等。

m0_74915426的博客 878

什么是分页?如何使用分页

方法1: 直接使用数据库提供的SQL语句语句样式: MySQL中 , 可用如下方法: SELECT * FROM 表名称 LIMIT M , N。适应场景: 适用于数据量较少的情况(元组百/千级)。原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3)。Limit限制的是从结果集的M位置处取出N条输出,其余抛弃。

沉淀所学,分享所思,让热爱与成长同行。商务记录AI实战经验,助力开发者快速成长。 热爱AI,希望做出有影响力的技术成果。 技术点亮生活,分享连接价值与机会。 专注AI落地实战,陪你走好技术每一步。 1万+

java后端分页的多种操作你必须要知道

为什么要使用分页?我们服务器的数据jvm内存有限制,数据不能全部返回,必须采用分页或者拆分的方式进行分页这样不仅仅提高搜索和查询的效率,也能够减少前后端的带宽传输。

小杨互联网 3379

什么是分页?怎么实现分页的实现?

分页的实现

superliug的博客 3万+
上一篇: Jsp应用
下一篇: Junit报错java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=test]的解决
许潜行
博客等级 码龄4年 296粉丝 75原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值