1. 程式人生 > >分頁 模糊查詢

分頁 模糊查詢

一、所有的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>



相關推薦

guns按行查詢查詢模糊查詢模糊查詢

 @ApiOperation(value = "測試")     @RequestMapping(value = "/test",method = RequestMethod.POST)     @ResponseBody     public Object test() {

模糊查詢

一、所有的web香茅油都會用到分頁顯示和模糊查詢,對於有些人不知道該怎麼寫 二、今天我用springMVC 和 myBatis 寫的分頁和模糊分享給大家,不喜勿噴 三、資料庫是mysql 四、其實寫分頁就是新建一個分頁的類,定義 頁碼  每頁數量  共幾頁  當前頁數

Django查詢參數的問題

內容 pytho 傳參 earch ear 現實 dpm .net repl 查詢是通過get的方式,之前沒有分頁之前,url是這樣的: http://hostname/search?query=port%3A8080 那麽我的想法是如果分頁了。 1,不帶page參數了。n

php mysql 模糊查詢 並根據詞匹配度排序

close desc highlight this then 中文 sql 一個數 exec 中文分詞用 SCWS 的api http://www.xunsearch.com/scws/api.php 1.php中用 curl獲取分詞結果 protected functi

關於easyUI條件查詢的解決方法

在做專案時,遇到運用easyUI框架,進行條件查詢無法分頁的問題,開始是運用form表單提交的方式,根據不同的條件篩選資料。這樣的方法能實現資料按照所傳條件的查詢,但對查詢得到的資料進行分頁控制不知道怎麼處理。在多方查詢後,找到如下解決辦法:        

EasyUI表格手動設定,提高查詢效率

1.前段時間發了一個EasyUI表格的製作,使用自動分頁方法,後來發現查詢效率太低,今天來設定手動分頁。在js中先宣告幾個全域性變數。 2.在查詢方法裡需要用ajax查詢資料數量,odata是返回的結果,chg_table是表的id,RefreshPageNumber方法是一個工具,稍後貼

MVCEasyUI+jQuery+EF+Ajax實現+條件查詢

Controller程式碼: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using

springboot條件查詢java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.github.pageh

java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.github.pagehelper.Page at com.boku.www.service.impl.Projec

mongorepository條件查詢

最近專案有用到mongodb,也是經歷了從不會到滿百度的查資料,對mongodb有了些許的理解,專案裡面總想著偷懶,不想使用template的類去拼寫,就找了spring封裝好的mongorepository進行查詢,大體跟spring-data-jpa差不多,廢話不多說了 進入主題

整理近期專案——元件+查詢功能+許可權展示3合頁面專案

近期完成小專案中含登入頁、首頁及詳情頁,其中運用到自封裝分頁元件及許可權頁面展示結合查詢功能。話不多說,進主題 login頁 index首頁 這裡先說需求,該介面分3種許可權,第一種、二種為管理員,管理員登入後無法新增資料,查詢條件只有已稽核及未稽核,顯示錶格中備案數量及

hibernate 通用查詢的泛型類

寫在泛型dao層的實現類裡,可以達到寫一次,然後繼承這個實現類,傳入各自的型別就可以達到很高的複用效果,增加開發效率 也可以作為查詢的分頁,自己動態構造查詢的語句,然後對應好傳入的引數,動態構造查詢語句的時候StringBuffer,直接用string型別效率低。 向上具體

PostgreSQL兩種方法查詢時間比較

資料庫中存了3000W條資料,兩種分頁查詢測試時間 第一種 SELECT * FROM test_table WHERE i_id>1000 limit 100; Time: 0.016s 第二種 SELECT * FROM test_table  limi

黑馬十次方專案day02-03之springdatajpa 條件查詢

文章目錄 需求分析 Control層 Service 開啟專案,測試 需求分析 根據十次方api的分頁條件查詢如下 可以看到分頁條件查詢為post請求, 必須傳遞三個引數.

MybatisPlus 複雜查詢

Page page=new Page(param.getCurrent(),param.getSize()); Wrapper w= new EntityWrapper(); w.eq("trade_type",tradeType); //支

spring data jpa 中@Query註解pageable查詢

持有層程式碼:Repository @Query(value = "select * from user_liveapp where user_Id = :userId ORDER BY ?#{#pageable}", nativeQuery = true) Page&

SSM框架AJAX PageHelper查詢,增刪改 前端業務邏輯

//定義全域性變數,總記錄數 var totalRecord,currentPage; //頁面載入完成以後,直接去傳送ajax請求,要到分頁資料 $(function(){ //頁面載入完預設進首頁

91---Criteria的內連結,查詢唯一物件,條件查詢,分組統計,投影查詢,DetachedCriteria

================Criteria分頁加動態查詢方法====================================== public PageInfo<Auction> select(Auction condition, int pageIndex){DetachedC

hibernate HQL 關聯查詢(一對多單向,多對一 雙向,多對多)

HQL的 分頁 1.首先我們準備好實體類: package cn.happy.hibernate04pagelist; import cn.happy.hibernate03hql.conEmp; import java.util.Date; /** * Creat

datatables表格外掛實現前後端排序++條件查詢

1、在頁面中引入datatables需要的js及css檔案,定義一個表格 <link rel="stylesheet" href="/script/libs/DataTables/datatables.min.css" type="text/css" />

mybatis條件查詢動態sql

http://blog.csdn.net/future_it_daniel/article/details/51810489 MyBatis中實現動態的SQL語句,分頁以及mybatis的常用的配置 原創 2016年07月02日 11:49:11 7223