mybatis分頁條件查詢動態sql
http://blog.csdn.net/future_it_daniel/article/details/51810489
MyBatis中實現動態的SQL語句,分頁以及mybatis的常用的配置
原創 2016年07月02日 11:49:11
1.動態SQL:在SQL語句中加入流程控制。比如加入if,foreach等。
重點掌握if語句:
案例1:
- <update id="updateItem" parameterType="com.gxa.bj.modle.UserInfo">
- update UserInfo set
-
<if
- userName=#{userName},
- </if>
- <if test="userPwd!=null">
- userPwd=#{userPwd},
- </if>
- <if test="userEmail!=null">
- userEmail=#{userEmail},
- </if>
-
userId=#{userId} where userId=#{userId}
- </update>
實現列:
- UserInfo u=new UserInfo();
- u.setUserId(7);
- u.setUserName("李大名");
- u.setUserPwd("123");
- u.setUserEmail("[email protected]");
- userMapper.updateItem(u);
- sqlSessin.commit();
- System.out.println("修改成功");
案列2:
-
<select id="getList"
- select * from UserInfo where 1=1
- <if test="userName!=null">
- and userName like #{userName}
- </if>
- <if test="userId>0">
- and userId=#{userId}
- </if>
- <if test="userPwd!=null and userPwd!=''">
- and userPwd like #{userName}
- </if>
- </select>
實現列:
- u.setUserName("小白");
- List<UserInfo> list= userMapper.getList(u);
- for(UserInfo u1:list){
- System.out.println("使用者資訊:"+u1.getUserPwd());
- }
2.分頁的實現?
分頁的時候考慮的問題:
分頁的大小,分頁的索引。
比如:分頁的大小為10,分頁的起始索引為1(索引從1開始)
第一頁:1到10. 起始行號: (頁的索引-1)*分頁大小+1
結束行號: 頁的索引*分頁大小
實現方案:
1)比如針對UserInfo的實體物件做分頁處理,那麼先建立一個分頁的實體類,該類繼承自UserInfo package com.gxa.bj.modle
- package com.gxa.bj.modle;
- publicclass UserInfoPage extends UserInfo{
- privateint pageIndex;//分頁的索引
- privateint pageSize;//分頁的大小
- privateint startNum;//分頁起始行
- privateint endNum;//分頁結束行
- publicint getPageIndex() {
- return pageIndex;
- }
- publicvoid setPageIndex(int pageIndex) {
- this.pageIndex = pageIndex;
- }
- publicint getPageSize() {
- return pageSize;
- }
- publicvoid setPageSize(int pageSize) {
- this.pageSize = pageSize;
- }
- publicint getStartNum() {
- return startNum;
- }
- publicvoid setStartNum(int startNum) {
- this.startNum = startNum;
- }
- publicint getEndNum() {
- return endNum;
- }
- publicvoid setEndNum(int endNum) {
- this.endNum = endNum;
- }
- }
2)在介面只陪你過定義一個方法:
- public List<UserInfo> getListByPage(UserInfoPage upage);
3)在Mapper檔案中編寫SQL語句:
- <select id="getListByPage" resultType="com.gxa.bj.modle.UserInfoPage" parameterType="com.gxa.bj.modle.UserInfoPage">
- select u.*
- From(select rownum as num, userinfo.*
- from userinfo
- <where>
- <if test="userName!=null">
- and userName like #{userName}
- </if>
- <if test="userId>0">
- and userId=#{userId}
- </if>
- <if test="userPwd!=null and userPwd!=''">
- and userPwd like #{userName}
- </if>
- </where>
- ) u where u.num between #{startNum}and#{endNum}
- </select>
4)測試程式碼:
- UserInfoPage u1= new UserInfoPage();
- u1.setUserName("userName");
- u1.setPageIndex(2);//查詢第幾頁
- u1.setPageSize(2);//分佈每頁的條數
- int startNum=(u1.getPageIndex()-1)*u1.getPageSize()+1;
- int endNum=u1.getPageIndex()*u1.getPageSize();
- u1.setStartNum(startNum);
- u1.setEndNum(endNum);
- List<UserInfo> list=userMapper.getListByPage(u1);
- for(UserInfo t :list){
- System.out.println("id:"+t.getUserId());
- }
相關推薦
mybatis分頁條件查詢動態sql
http://blog.csdn.net/future_it_daniel/article/details/51810489 MyBatis中實現動態的SQL語句,分頁以及mybatis的常用的配置 原創 2016年07月02日 11:49:11 7223
關於easyUI分頁條件查詢的解決方法
在做專案時,遇到運用easyUI框架,進行條件查詢無法分頁的問題,開始是運用form表單提交的方式,根據不同的條件篩選資料。這樣的方法能實現資料按照所傳條件的查詢,但對查詢得到的資料進行分頁控制不知道怎麼處理。在多方查詢後,找到如下解決辦法:
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差不多,廢話不多說了 進入主題
黑馬十次方專案day02-03之springdatajpa 分頁條件查詢
文章目錄 需求分析 Control層 Service 開啟專案,測試 需求分析 根據十次方api的分頁條件查詢如下 可以看到分頁條件查詢為post請求, 必須傳遞三個引數.
datatables表格外掛實現前後端排序+分頁+條件查詢
1、在頁面中引入datatables需要的js及css檔案,定義一個表格 <link rel="stylesheet" href="/script/libs/DataTables/datatables.min.css" type="text/css" />
mybatis的多條件查詢案例(動態sql)
近日做系統,由於選擇了mybatis作為後端的ORM,所以在糾結到底用註解annotation的方式好呢,還是使用xml配置的方式。 為此,查詢了很多資料。感覺大部分都在推薦xml配置方式,並且我是誠心的去用annotation的,畢竟想順應時代嘛,結果死活就是找不到。 最
MyBatis中的條件查詢(動態sql)
本文將介紹在MyBatis中,與dao對應的sql對映檔案的書寫,用動態sql實現對滿足條件的使用者集合的查詢。 首先,建立一個實體類User; package com.xyfer.pojo; public class User{ private String name;
mybatis分頁查詢之sql server--mysql
在習慣了使用mysql進行資料操作後,突然轉到sql server,雖然說兩者在mybatis中的語法基本相同,很容易替換,但是,這也是最容易出問題的地方,因為往往我們會被這些些微的“不同”坑害。 今天這裡就分享一下mysql和sql s
mybatis分頁查詢,SqlServer 2008 查詢速度很慢
com ima alt 分頁查詢 img bubuko .com nbsp ati 一個業務場景,需要進行union查詢: 查詢速度非常慢,大概要37秒: 直接復制sql在數據庫客戶端執行,速度很快,由此可知是mybatis的原因,在網上搜索,可以配置fetc
mybatis-分頁查詢學習筆記
mybatis-分頁查詢學習筆記 import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; import cn.itcast
mybatis分頁查詢需要注意的問題
一般對mybatis的分頁查詢的關鍵程式碼就兩行: #currentPage代表當前頁,pageSize代表每頁的行數 PageHelper.startPage(currentPage, pageSize); #查詢的語句 mapper.select(); 一般程式碼在走到mapper.sel
MyBatis分頁功能的實現(陣列分頁、sql分頁、攔截器,RowBounds分頁)
前言:學習hibernate & mybatis等持久層框架的時候,不外乎對資料庫的增刪改查操作。而使用最多的當是資料庫的查詢操
MyBatis MySQL limit分頁含運算動態語句
MySQL基本的分頁語句 select * from table limit offset,pageSize 正常情況下是沒問題的,如果offset是動態的 select * from table l
mybatis分頁多表查詢
mybatis分頁多表查詢 我們常遇到一種情況,資料量比較大,如果使用前臺分頁,在前臺如果有許可權,有邏輯判斷,都會大大降低頁面載入的速度,我們需要分頁,單表查詢的網上方法很多,這裡就不贅餘了,多表關聯查詢的分頁需求很多,但是後臺外掛能夠分頁的,Page,PageHelper都是隻支援單表的,多
mybatis 分頁查詢
<!-- 分頁查詢 --> <select id="datalistPage" parameterType="page" resultType="pd" useCache="false"> select *
SpringBoot + mybatis 分頁查詢
com.github.pagehelper.PageHelper是一款好用的開源免費的Mybatis第三方分頁外掛。使用的時候,只要簡單配置,就可以在查詢語句之後得到所需的分頁資訊。 1:在 pom.
根據條件查詢動態拼接sql語句
function append_where(&$sql, $has_where) { $sql .= $has_where ? ' AND ' : ' WHERE '; return $sql; } function demo($name = ''
MyBatis分頁的拓展--合併高階查詢
MyBatis分頁的拓展–合併查詢 在網上有很多關於MyBatis攔截器分頁的辦法,可缺少關於合併查詢的方法。本文將講述這一過程的具體實現。 話不多說,直接貼程式碼: applicationContext.xml裡這樣配置: <!--