激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達(dá)式|

服務(wù)器之家 - 編程語言 - JAVA教程 - 詳解Mybatis分頁插件 - 示例代碼

詳解Mybatis分頁插件 - 示例代碼

2020-07-19 12:09isea533 JAVA教程

這篇文章主要介紹了詳解Mybatis分頁插件 - 示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。

這里說最好用,絕對不是吹的,不過有好多人都不理解為什么要用這個插件,自己手寫分頁sql不是挺好嗎......

所以我特地寫這樣一個例子來講為什么最好用。

假設(shè)我們已經(jīng)寫好了Mapper的接口和xml,如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public interface SysLoginLogMapper {
  /**
   * 根據(jù)查詢條件查詢登錄日志
   * @param logip
   * @param username
   * @param loginDate
   * @param exitDate
   * @return
   */
  List<SysLoginLog> findSysLoginLog(@Param("logip") String logip,
                   @Param("username") String username,
                   @Param("loginDate") String loginDate,
                   @Param("exitDate") String exitDate,
                   @Param("logerr") String logerr);
 
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.easternie.sys.dao.SysLoginLogMapper">
 <select id="findSysLoginLog" resultType="com.easternie.sys.vo.model.SysLoginLog">
  select * from sys_login_log a
  <if test="username != null and username != ''">
   left join sys_user b on a.userid = b.userid
  </if>
  <where>
   <if test="logip!=null and logip != ''">
    a.logip like '%'||#{logip}||'%'
   </if>
   <if test="username != null and username != ''">
    and (b.username like '%'||#{username}||'%' or b.realname like '%'||#{username}||'%')
   </if>
   <if test="loginDate!=null and loginDate!=''">
    and to_date(substr(a.logindate,0,10),'yyyy-MM-dd') = to_date(#{loginDate},'yyyy-MM-dd')
   </if>
   <if test="exitDate!=null and exitDate!=''">
    and to_date(substr(a.EXITDATE,0,10),'yyyy-MM-dd') = to_date(#{exitDate},'yyyy-MM-dd')
   </if>
   <if test="logerr!=null and logerr!=''">
    and a.logerr like '%'||#{logerr}||'%'
   </if>
  </where>
  order by logid desc
 </select>
</mapper>

雖然是舉個簡單例子,但是這里的xml并沒那么簡單。

如果你已經(jīng)有一些例如上面這些現(xiàn)成的Mybatis方法了,我現(xiàn)在想對這個查詢進(jìn)行分頁,我該怎么辦呢?

如果是手寫SQL,我需要增加兩個接口,一個查詢count總數(shù),一個改為分頁形式的。需要在xml中,復(fù)制粘貼,然后改改語句,似乎也不是很難。你是這樣做的嗎?

如果使用這個插件,我需要做什么呢???

對Mybatis已經(jīng)寫好的這些方法來說,我什么都不需要改。

但是Service層可能需要動一下。具體上面這個例子。看下面的Service層調(diào)用代碼。

不需要分頁時候的代碼:

?
1
2
3
4
5
6
7
public List<SysLoginLog> findSysLoginLog(String loginIp,
                     String username,
                     String loginDate,
                     String exitDate,
                     String logerr) throws BusinessException {
  return sysLoginLogMapper.findSysLoginLog(loginIp, username, loginDate, exitDate, logerr);
}

增加分頁功能之后的代碼:

?
1
2
3
4
5
6
7
8
9
10
11
public PageHelper.Page<SysLoginLog> findSysLoginLog(String loginIp,
                     String username,
                     String loginDate,
                     String exitDate,
                     String logerr,
                     int pageNumber,
                     int pageSize) throws BusinessException {
  PageHelper.startPage(pageNumber,pageSize);
  sysLoginLogMapper.findSysLoginLog(loginIp, username, loginDate, exitDate, logerr);
  return PageHelper.endPage();
}

相比較而言:

返回值從List<SysLoginLog>改成了PageHelper.Page<SysLoginLog>

入?yún)⒃黾恿藘蓚€,pageNumber和pageSize

然后過程代碼中,先調(diào)用了

?
1
PageHelper.startPage(pageNumber,pageSize);

startPage是告訴攔截器說我要開始分頁了。分頁參數(shù)是這兩個。

然后調(diào)用原來的Mybatis代碼:

?
1
sysLoginLogMapper.findSysLoginLog(loginIp, username, loginDate, exitDate, logerr);

這里沒有接收返回值,會不會覺得奇怪?實際上PageHelper已經(jīng)自動接收了返回值。通過下面的代碼可以取出返回值:

?
1
PageHelper.endPage();

同時endPage告訴攔截器說我結(jié)束分頁了,不需要你了。

你覺得這樣的代碼簡單還是手寫sql簡單呢?

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://blog.csdn.net/isea533/article/details/24700339

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久精品视频国产 | 欧美成人黄色小视频 | 免费福利在线视频 | 中文字幕国产欧美 | 欧美一级黑人 | 黄色免费视频观看 | 久久撸视频 | 亚洲 91| 欧美成人高清视频 | 亚洲性夜色噜噜噜7777 | 黄色毛片前黄 | 国内精品一级毛片免费看 | 91成人免费在线观看 | 91精彩在线| 欧美18xxxx| 国产无遮挡一级毛片 | 羞羞视频免费视频欧美 | gril hd| 古装三级在线观看 | 成人免费毛片在线观看 | 中文字幕在线永久视频 | 视频一区二区三区在线播放 | 久久99亚洲精品久久99果 | 成年免费看 | 少妇激情视频 | 欧美 日韩 三区 | 久久久久中精品中文字幕19 | 中文在线日韩 | 国内精品视频饥渴少妇在线播放 | 中文字幕观看 | 97超碰资源站 | 国产精品久久久久久久四虎电影 | 护士hd欧美free性xxxx | 成人免费观看在线 | 一级一级一级一级毛片 | 97干色 | 成人富二代短视频 | 粉嫩粉嫩一区二区三区在线播放 | 99久久精品免费 | 欧美精品久久久久久久久久 | 精品午夜影院 |