分页 模糊查询「建议收藏」

分页 模糊查询「建议收藏」一、所有的web项目都会用到分页显示和模糊查询,对于有些人不知道该怎么写二、今天我用springMVC和myBatis写的分页和模糊分享给大家,不喜勿喷三、数据库是mysql四、其实写分页就是新建一个分页的类,定义页码每页数量共几页当前页数总数量五、判断多少页,获取总数量除以每页显示的数量,有余数+1页六、sql语句就是用…

大家好,又见面了,我是你们的朋友全栈君。

一、所有的web项目都会用到分页显示和模糊查询,对于有些人不知道该怎么写

 

二、今天我用springMVC 和 myBatis 写的分页和模糊分享给大家,不喜勿喷

 

三、数据库是mysql

 

四、其实写分页就是新建一个分页的类,定义 页码  每页数量  共几页  当前页数  总数量

 

五、判断多少页,获取总数量除以每页显示的数量,有余数+1页

 

六、sql语句就是用 limit  显示的数量,把从多少条开始,到显示几条传到sql语句上

 

七、目前每页的显示的数量是定义好的,等过两天有时间把自己可以选择显示页数的代码写出来

 

八、源码下载地址  点击打开链接

 

用户实体类

public class User {
	
	private int id;
	private String name;
	private String sex;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}

分页的实体类

public class Page {
	/**
	 * 页码
	 */
	private int pageNum;
	/**
	 * 每页显示的行数
	 */
	private int pageRows;
	/**
	 * 总行数
	 */
	private int totalRows;
	/**
	 * 总页数
	 */
	private int totalPages;
	/**
	 * 起始行号
	 */
	private int beginRownum;
	/**
	 * 结束行号
	 */
	private int endRownum;

	public Page(int pageNum, int pageRows, int totalRows) {
		this.pageNum = pageNum;
		this.pageRows = pageRows;
		this.totalRows = totalRows;
		// 计算总页数:总行数%每页行数==0?总行数/每页行数:总行数/每页行数+1
		this.totalPages = totalRows % pageRows == 0 ? totalRows / pageRows : (totalRows / pageRows) + 1;
		beginRownum = (pageNum - 1) * pageRows;
		endRownum = pageNum * pageRows;
	}

	public int getPageNum() {
		return pageNum;
	}

	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}

	public int getPageRows() {
		return pageRows;
	}

	public void setPageRows(int pageRows) {
		this.pageRows = pageRows;
	}

	public int getTotalRows() {
		return totalRows;
	}

	public void setTotalRows(int totalRows) {
		this.totalRows = totalRows;
	}

	public int getTotalPages() {
		return totalPages;
	}

	public void setTotalPages(int totalPages) {
		this.totalPages = totalPages;
	}

	public int getBeginRownum() {
		return beginRownum;
	}

	public void setBeginRownum(int beginRownum) {
		this.beginRownum = beginRownum;
	}

	public int getEndRownum() {
		return endRownum;
	}

	public void setEndRownum(int endRownum) {
		this.endRownum = endRownum;
	}
	
}

 

 

 

mapper  和  映射文件

public interface UserMapper {
	
	public List<User> selectAll(Map<String,Object> map);
	
	//查询总行数
	public int selTotalRows(Map<String,Object> map);
}

<mapper namespace="com.mapper.UserMapper">

	<select id="selectAll" resultType="com.entity.User">
		select * from user 
		<where>
			<if test="name != null and name != ''">
				and name like #{name}
			</if>
			<if test="sex != null and sex != ''">
				and sex = #{sex}
			</if>
		</where>
		limit #{page.beginRownum},5
	</select>
	
	<!-- 查询总行数 -->
	<select id="selTotalRows" resultType="int">
		select count(id) from user
		<where>
			<if test="name != null and name != ''">
				and name like #{name}
			</if>
			<if test="sex != null and sex != ''">
				and sex = #{sex}
			</if>
		</where>
	</select>

</mapper>

 

控制层

public class UserController {

		@Autowired
		private UserService userService;

		@RequestMapping("/showAll.action")
		public String selAll(HttpServletRequest request){
			Map<String,Object> map = new HashMap<String, Object>();	
			map.put("name", null);
			map.put("sex", null);
			Page page = new Page(1,5,userService.selTotalRows(map));
			map.put("page", page);
			List<User> userList = userService.selectAll(map);
			request.setAttribute("userList", userList);
			request.setAttribute("page", page);
			return "two.jsp";
		}
		
		
		//查询所有用户(带模糊查询、分页)
		@RequestMapping("/showPage.action")
		public String selAllLikePage(int pageNum,String name,String sex,HttpServletRequest request){
			Map<String,Object> map = new HashMap<String, Object>();
			if("".equals(name)){
				map.put("name", null);
			}else{
				map.put("name", "%"+name+"%");
			}
			if("".equals(sex)){
				map.put("sex", null);
			}else{
				map.put("sex", sex);
			}
			Page page = new Page(pageNum,5,userService.selTotalRows(map));
			map.put("page", page);
			List<User> userList = userService.selectAll(map);
			request.setAttribute("userList",userList);
			request.setAttribute("page", page);
			request.setAttribute("name", name);
			request.setAttribute("sex", sex);
			return "two.jsp";
		}
}

 

jsp页面

<body>
	<div>
		<form action="showPage.action?pageNum=1" method="post">
			<span>
				姓名:<input name="name" value="${name }" />   
				性别:<input name="sex" value="${sex }" />  
				<input type="submit" value="查询" /> 
			</span>
		</form>
	</div>
	<br><br>
	<div>
		<table width="500" border="1" cellspacing="0" cellpadding="0">
			<tr>
				<th width="100px">序号</th>
				<th width="200px">姓名</th>
				<th width="200px">性别</th>
			</tr>
			<c:forEach items="${userList }" var="user">
				<tr>
					<td>${user.id }</td>
					<td>${user.name }</td>
					<td>${user.sex }</td>
				</tr>
			</c:forEach>
			<tr>
				<td class="scott" colspan="20" style="text-align: center;">
					 <c:if test="${page.pageNum > 1 }">
                       	<a href="showPage.action?name=${name }&sex=${sex }&pageNum=1">首页</a>
						<a href="showPage.action?name=${name }&sex=${sex }&pageNum=${page.pageNum - 1 }">上一页</a>
					</c:if>
					<c:forEach begin="1" end="${page.totalPages}" step="1" var="num">
						<c:if test="${page.pageNum == num }">${num }</c:if>
						<c:if test="${page.pageNum != num }">
							<a href="showPage.action?name=${name }&sex${sex }&pageNum=${num }">${num }</a>
						</c:if>
					</c:forEach>
					<c:if test="${page.pageNum < page.totalPages }">
						<a href="showPage.action?name=${name }&sex=${sex }&pageNum=${page.pageNum + 1 }">下一页</a>
						<a href="showPage.action?name=${name }&sex=${sex }&pageNum=${page.totalPages }">尾页</a>
					</c:if>
					总${page.pageNum}/${page.totalPages }页
				</td>
			</tr>
		</table>
		
	</div>
</body>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143750.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据仓库ods是什么意思_数据仓库ODS全拼

    数据仓库ods是什么意思_数据仓库ODS全拼1.引言本篇主要讲述操作数据存储(ODS)系统产生的背景、定义、特点,以及它与数据仓库的区别。在前两篇,笔者介绍了什么是数据仓库?为什么需要数据仓库?数据仓库系统的体系结构是什么?因此可能在读者心里已经形成了企业数据存储的DB~DW两层体系结构的概念,但在实际应用中,并不总是这样,有时候我们可能需要ODS这一系统来搭建DB~ODS~DW三层数据体系,那么什么是ODS?为什么需要ODS?ODS与D…

    2022年10月6日
  • 给IDEA换个酷炫的主题,这个有点哇塞啊!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:CodeWhite7 blog.csdn.net/weixin_46146269/article/detail…

    2021年6月27日
  • Unity3d快速入门[通俗易懂]

    Unity3d快速入门[通俗易懂]https://www.zhihu.com/question/313621072Unity3d如何快速入门前言进入一个领域,最直接有效的方法就是,寻找相关综述性文章,首先你需要对你入门的领域有个概括性的了解,这些包括:1、主流的学习社区与网站。2、该领域的知名大牛与热心分享的从业者。3、如何有效的激励自己持续学习—主要是动手实践因此,总结一下Unity相关学习资源,可能有些不足,欢迎大家指正修改,一起成长!授人与鱼,不如授人与渔!一、Unity官方学习资源1、【Unity官.

    2022年8月10日
  • Pycharm中安装Pygame方法「建议收藏」

    Pycharm中安装Pygame方法「建议收藏」本文转自:https://blog.csdn.net/zhangffyy/article/details/78524592第一步:打开Pycharm第二步:点File-&amp;amp;amp;gt;DefaultSettings-&amp;amp;amp;gt;ProjectInterpreter-&amp;amp;amp;gt;点加号第三步:搜索Pygame-&amp;amp;amp;gt;InstallPackage然后就安装好了,新建一个p

    2022年8月29日
  • Linux 命令(139)—— nslookup 命令

    Linux 命令(139)—— nslookup 命令1.命令简介nslookup(NameServerLookup)是一种网络管理命令,用于从DNS服务器查询域名、IP或其他DNS记录信息。nslookup有两种工作模式,交互模式和非交互模式。在交互模式下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。在非交互模式下,针对一个主机或域名仅仅获取特定的名称或所需信息。进入交互模式有两种方式:(1)直接输入nslookup命令,不加任何参数,此时nslookup会连接到默认的域名服务器(/etc/resol

    2022年10月19日
  • 电脑弹出当前页面的脚本发生错误_360当前页面的脚本发生错误

    电脑弹出当前页面的脚本发生错误_360当前页面的脚本发生错误笔者Windows版本:Windows8Enterprise64位(DirectX11)Windows有一天忽然开始报“脚本错误当前页面的脚本发生错误”警告窗口:不管点“是”还是“否”,电脑使用一段时间以后还是会弹这个烦人的框。按照搜索来的解决办法,禁用IE的脚本调试选项:不起作用,还是会持续报以上警报。即便是重启电脑以后依然会如此。这…

    2022年10月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号