免連表查詢並手動實現PageHelper

2021-09-26 18:57:04 字數 2476 閱讀 4090

專案需求關聯了三個表進行查詢,並且對查詢的結果進行分頁。

下面是查詢語句,以及count查詢,因為返回結果需要count資訊,你檢視pagehelper的查詢過程就會發現,也是執行了一下count

但是要在同樣的條件下查詢才會準確。

比如下面的語句中查詢了status,那麼count語句中同樣要帶著status進行查詢,為了方便我用的map傳參,下面會有展示

select

from invite

status = #

and member_id = #

order by num desc

limit #,#

select count(id) from invite

status = #

and member_id = #

service層

以下是service層的查詢,返回乙個結構體

)//手動計算startnum

int startnum =

(integer.

valueof

(pagenum)-1

)*integer.

valueof

(pagesize)

;//limit後面的兩個引數是int型別

selectmap.

put(

"startnum"

,integer.

valueof

(pagenum));

selectmap.

put(

"pagelength"

,integer.

valueof

(pagesize));

list

list = inviteservice.

list

(selectmap)

; integer num = inviteservice.

count

(selectmap)

; map map =

newhashmap()

;//計算totalpage

int totalpage = num / integer.

valueof

(pagesize)+(

(num % integer.

valueof

(pagesize)==0

)?0:

1);//

map.

put(

"list"

, list)

; map.

put(

"total"

, num)

; map.

put(

"pagenum"

, integer.

valueof

(pagenum));

map.

put(

"pages"

, totalpage)

; json.

put(

"success"

,true);

json.

put(

"code"

,200);

json.

put(

"msg"

,"查詢成功");

json.

put(

"data"

, map)

;return json;

}題外話:使用springboot最好引入這個

com.github.pagehelper

pagehelper-spring-boot-starter

1.2.12

yml檔案中的配置

pagehelper:

helper-dialect: mysql

reasonable: true

support-methods-arguments: true

params: countsql

mysql查詢並生產表 MYSQL實現連表查詢

一.建立相應的表 1 建立一張學生資訊的表,包含 id 自增 學號,姓名,性別,身高,體重,備註 create tablet student idint 25 primary keyauto increment,number int 25 unique not null,namevarchar 25...

mysql的連表查詢 MySQL 連表查詢

連表查詢 連表查詢通常分為內連線和外連線。內連線就是使用inner join進行連表查詢 而外連線又分為三種連線方式,分別是左連線 left join 右連線 right join 全連線 full join 下來我們一起來看一下這幾種連線方式的區別及基礎用法。內連線inner join inner...

mysql連表查詢

mysql連表查詢 上下 select from a.mobile user where union all select from b.mobile user where 左右 mysql聯合查詢效率較高,以下例子來說明聯合查詢 內聯 左聯 右聯 全聯 的好處 t1表結構 使用者名稱,密碼 use...