Mybatis實現聯表查詢並且分頁功能

2022-09-28 18:51:11 字數 1275 閱讀 3503

今天同學突然問我這個怎麼搞。

然後自己搞了一下發現這個玩意有坑。。就記錄一下

person表

cat表

乙個person有多個cat

實體類就這麼寫

person實體類

@data

public class person implements serializable

cat實體類

@data

public class cat implements serializable

persondao.xml

<?xml version="1.0" encoding="utf-8"?>

程式設計客棧

"integer"/>

select personid, firstname, lastname, id, name, history, features, imgurl, person_id

from mybatis.person p inner join mybatis.cat c on p.personid = c.person_id

and personid= #

上面這個是查詢單個人的,但是分頁沒有這麼簡單

一開始我以為是這麼寫的,就簡單的加乙個limit

select personid, firstname, lastname, id, name, history, features, imgurl, person_id

from mybatis.person p inner join mybatis.cat c on p.personid = c.person_id

limit #,#

然後查出來就是這個吊樣。。。很明顯嘛,不對我的胃口。。

後面我準備放棄的時候突然想到可以來乙個子查詢。。。

然後我就寫出了這樣的sql

,在子查詢裡面套子查詢。。。實現limit分頁的效果

select personid, firstname, lastname, id, name, history, features, imgurl, person_id

from mybatis.person p left join mybatis.cat c on p.personid = c.person_id

where personid in (select pp.personid from (select person.personid from person limit 程式設計客棧2,2) as pp);

然後sql放到上面就搞好了

跑出來的效果就非常nice

Mybatis的動態sql語句,聯表實現

通過mybatis提供的各種標籤方法實現動態拼接sql。需求 根據性別和名字查詢使用者 查詢sql select from user where 1 1 and uname like 劉 and uage 20 if標籤測試方法 注意字串型別的資料需要要做不等於空字串校驗。where標籤 上面的sq...

C 呼叫C Dll 並且實現聯調

1 extern c declspec fun 2 由於c 與c 呼叫方式不一樣,所以函式前需要加 stdcall修飾 3 c 中 dllimport dll public static extern fun c 與c 的資料型別有的不一樣,這個需要注意 4 把dll工程於c 工程弄到同乙個解決方案...

zf聯表查詢

zf支援聯表查詢,並且會經常遇到聯表查詢,具體 寫法如下 select this select select from this name,array id name select distinct select joinleft jobname,jobname.enterprise id this...