MyBatis Plus 如何實現連表查詢

2021-10-25 15:01:46 字數 2711 閱讀 7367

gitee

github

在專案中新增依賴

>

>

com.github.yulichanggroupid

>

>

mybatis-plus-joinartifactid

>

>

1.1.8version

>

dependency

>

或者clone**到本地,執行mvn install,再引入以上依賴

注意: mybatis plus version >= 3.4.0

service繼承mpjbaseservice (可選)

serviceimpl繼承mpjbaseserviceimpl (可選)

mpjbaseservice 繼承了iservice,同樣新增以上方法

mpjbaseserviceimpl 繼承了serviceimpl,同樣新增了以上方法

簡單的3表查詢

class

test

}

對應sql

select 

t.id,

t.name,

t.***,

t.head_img,

t1.tel,

t1.address as useraddress,

t2.province,

t2.city

from

user t

left join user_address t1 on t1.user_id = t.id

left join area t2 on t2.id = t1.area_id

where (

t.id = ?

and t1.tel like ?

and t.id > ?)

說明:

分頁查詢

class

test

}

對應sql

select 

t.id,

t.name,

t.***,

t.head_img,

t1.tel,

t1.address as useraddress,

t2.province,

t2.city

from

user t

left join user_address t1 on t1.user_id = t.id

left join area t2 on t2.id = t1.area_id

limit ?,?

簡單的3表查詢
class

test

}

對應sql

select 

t.id,

t.name,

t.***,

t.head_img,

addr.tel,

addr.address,

a.province

from

user t

left join user_address addr on t.id = addr.user_id

right join area a on addr.area_id = a.id

where (

addr.tel like ?

and a.province <= ?)

說明:

分頁查詢

class

test

}

對應sql

select 

t.id,

t.name,

t.***,

t.head_img,

addr.tel,

addr.address,

a.province

from

user t

left join user_address addr on t.id = addr.user_id

right join area a on addr.area_id = a.id

limit ?,?

還可以這麼操作,但不建議
class

test

}

對應sql

select 

t.id,

t.name,

t.***,

t.head_img,

addr.tel,

addr.address,

case t.*** when '男' then '1' else '0' end as ***,

sum(a.province) as province

from

user t

left join (select * from user_address) addr on t.id = addr.user_id

right join area a on addr.area_id = a.id

where (

addr.tel like ?

and a.province <= ?)

order by

addr.id desc

MybatisPlus實現分頁

刪除操作 物理刪除 test public void testdeletebyid 完成了動態sql的foreach的功能 批量刪除 test public void testdeletebatchids 通過map封裝查詢條件 test public void testselectbymap 注意...

MybatisPlus實現邏輯刪除

查詢user表所有資料 test public void findall 批量刪除 test public void testdeletebatchids test public void testdeletebymap 1 資料庫中新增 deleted欄位 alter table user add...

mybatis plus實現樂觀鎖

1.在資料庫表中version欄位 2.在實體中加version欄位 version tablefield fill fieldfill.insert private integer version 說明 version標記此字段為樂觀鎖對應字段 tablefield fill fieldfill....