日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mybatis-plus多表关联查询,多表分页查询

發布時間:2025/7/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis-plus多表关联查询,多表分页查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習plus真的覺得寫代碼真的越來越舒服了。昨天開始接觸吧,只要學會了多表關聯查詢。plus就能隨意搭配使用了。

關于怎么搭建的就自行了去研究了哦。這里直接進入主題。

我用的是springboot+mybatis-plus。新項目我打算以后都是這樣了。

?

配置一個分頁插件!

import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.transaction.annotation.EnableTransactionManagement; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;@EnableTransactionManagement @Configuration @MapperScan("com.szpdc.Dao")//輸入你的dao層的包 public class MybatisPlusConfig {/*** 分頁插件*/@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}/*** SQL執行效率插件*/@Bean // @Profile({ "dev", "test" }) // 設置 dev test 環境開啟public PerformanceInterceptor performanceInterceptor() {return new PerformanceInterceptor();} }

?

Controller

@RequestMapping("syscal")public Object syscal() {Page<Map<String, Object>> page=userService.selectListPage(1, 2);return page.getRecords();}

?

Service

import java.util.Map;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;public interface UserService {Page<Map<String,Object>> selectListPage(int current, int number);}

  

ServiceImpl

import java.util.List; import java.util.Map; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;/*** * @Author By Yirs* @Date 2018-12-01 21:18:06* @Description mybatis-plus 在服務層繼承了ServiceImpl 就有了 UserMapper的 就少了以前的@Autowired 注入dao層*/@Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {@Overridepublic Page<Map<String,Object>> selectListPage(int current, int number) {// 新建分頁Page<Map<String,Object>> page = new Page<Map<String,Object>>(current, number);// 返回分頁結果 1為id return page.setRecords(this.baseMapper.dyGetUserList(page,1));}}

?

Dao

import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Select; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;/*** *@Author By Yirs*@Date 2018-12-01 22:27:13*/public interface UserMapper extends BaseMapper<User> {/*** 為了區別plus原來的查詢select*的字段 ,自定義為dy* @param 分頁查詢* @return 多表關聯查詢*/@Select("SELECT a.id,a.`name`,a.age,b.`describe` FROM USER a LEFT JOIN userinfo b ON a.id = b.user_id where a.id=#{id}")List<Map<String, Object>> dyGetUserList(Page<Map<String,Object>> page,Integer id);}

?

結果

  

?

Sql語句

需要就拿去當測試。

DROP TABLE IF EXISTS `user`; CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,`age` int(11) DEFAULT NULL,`email` varchar(255) CHARACTER SET utf8 DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;-- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES ('1', '謝謝', '18', '32as1d564@qq.com'); INSERT INTO `user` VALUES ('2', '行政村v', '22', '3234564@qq.com'); INSERT INTO `user` VALUES ('3', '查詢啊', '60', '35asd564@qq.com'); INSERT INTO `user` VALUES ('4', '才表報錯', '30', '32弟媳婦64@qq.com'); INSERT INTO `user` VALUES ('5', 'asdasd', '22', 'sdfsad'); INSERT INTO `user` VALUES ('6', 'dsfds', '32', 'sdafsdf'); INSERT INTO `user` VALUES ('7', 'sdfxczv', '33', 'xcvbvchrwt'); INSERT INTO `user` VALUES ('8', 'dfsalkcxjv', '99', 'jklsdhcfvlkjsda'); INSERT INTO `user` VALUES ('9', 'jskdchvc,m', '34', 'dvclkjh'); -- ------------------------------ ------------------------------ ---------------------------- DROP TABLE IF EXISTS `userinfo`; CREATE TABLE `userinfo` (`id` int(11) NOT NULL,`user_id` int(11) DEFAULT NULL,`describe` varchar(255) CHARACTER SET utf8 DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ---------------------------- -- Records of userinfo -- ---------------------------- INSERT INTO `userinfo` VALUES ('1', '1', '用戶1');

?

?只要mybatis基礎夠好這個很好理解的

轉載于:https://www.cnblogs.com/syscal/p/10051595.html

總結

以上是生活随笔為你收集整理的Mybatis-plus多表关联查询,多表分页查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。