当前位置: 首页 > news >正文

使用mybatisPlus自带的分页方法+xml实现数据分页

:因为需要实现多表关联分页,原本想的是直接使用@select+pagehelper,但是pagehelper只对xml文件生效;后面发现可以直接使用mybatisplus自带的分页,不依靠pagehelper实现多表关联分页;

实现类:关键代码:

Page<TgjZhuanKePaiMingVo> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize());创建分页对象
    /*** 查询国家专科排名数据列表*/@Overridepublic TableDataInfo<TgjZhuanKePaiMingVo> queryPageList(TgjZhuanKePaiMingBo bo, PageQuery pageQuery) {//查询医院级别字典Map<String, String> hosp_level = iSysDictTypeService.selectDictDataByType("hosp_level").stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));//医院类型字典Map<String, String> hosp_class = iSysDictTypeService.selectDictDataByType("hosp_class").stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));//所属地区字典Map<String, String> hosp_area = iSysDictTypeService.selectDictDataByType("hosp_area").stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));Page<TgjZhuanKePaiMingVo> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize());IPage<TgjZhuanKePaiMingVo> zhuanKePaiMingList = baseMapper.getZhuanKePaiMingList(page, hosp_level.get(bo.getHospLevel()), hosp_class.get(bo.getHospClass()),hosp_area.get( bo.getHospArea()), bo.getHospName());// 返回封装后的分页数据return TableDataInfo.build(zhuanKePaiMingList);}

mapper层:关键把

Page<?> page作为分页参数传递
 IPage<TgjZhuanKePaiMingVo> getZhuanKePaiMingList(Page<?> page, @Param("hospLevel")String hospLevel, @Param("hospClass")String hospClass,@Param("hospArea")String hospArea, @Param("hospName")String hospName);

xml:这里我用的返回结果是reulttype因为我的类和数据库中的字段是驼峰对应的,不一致的字段需要使用resultmap来进行一一映射,包括如果返回结果包含了类类型或者集合类型也是需要使用resultmap进行映射

    <select id="getZhuanKePaiMingList" resultType="org.yunshu.keyspecialty.domain.vo.TgjZhuanKePaiMingVo">SELECTa.id,a.nian_fen,b.hosp_name AS yi_yuan_ming_cheng,a.zhuan_ke_dai_ma,a.zhuan_ke_ming_cheng,a.zhuan_ke_zhi,a.pai_ming,a.dang_wei,b.hosp_level,b.hosp_class,b.hosp_area,b.hosp_gradeFROMTgj_zhuan_ke_pai_ming aLEFT JOINsys_hospital bONa.yi_yuan_id = b.hosp_idWHERE1 = 1<if test="hospLevel != null and hospLevel != ''">AND b.hosp_level = #{hospLevel}</if><if test="hospClass != null and hospClass != ''">AND b.hosp_class like convert(#{hospClass},'%')</if><if test="hospArea != null and hospArea != ''">AND b.hosp_area = #{hospArea}</if><if test="hospName != null and hospName != ''">AND b.hosp_name LIKE CONCAT(#{hospName}, '%')</if></select>

相关文章:

  • PyTorch:学习 CIFAR-10 分类
  • 25.4.17学习总结
  • 多线程进阶知识篇(二)
  • CSDN创作四载记:我的创作纪念日随笔与感悟
  • SpringBoot整合Thymeleaf模板:构建现代化Web视图层的完整指南
  • 5G中LDPC编码之码块分段
  • C++入门小馆: C/C++内存管理
  • DAY 47 leetcode 232--栈与队列.用栈实现队列
  • 视频剪辑入门
  • iptables防火墙
  • 【C++初阶】第14课—缝合怪deque和优先队列、仿函数
  • AI在能源消耗管理及能源效率提升中的核心应用场景及技术实现
  • vllm 本地部署qwen2.5/Qwen2.5-32B-Instruct-AWQ模型
  • Crawl4AI:为大语言模型打造的开源网页数据采集工具
  • AI Agent系列(九) -Data Agent(数据分析智能体)
  • 【无人机】PX4飞控怎么烧写加载固件,更新固件方法,详细流程
  • seaborn库详解
  • pandas库详解
  • 【web服务_负载均衡Nginx】一、Nginx 基础与核心概念解析
  • 使用 reverse-sourcemap 工具反编译 Vue 项目
  • 巴基斯坦军方:印度导弹袭击巴首都附近空军基地
  • 罕见沙尘再度入川,官方:沙尘传输高度达到平流层,远超以往
  • 4月金融数据前瞻:受去年低基数因素影响,社融增量有望同比大幅多增
  • 中国国家电影局与俄罗斯文化部签署电影合作文件
  • 陕西澄城樱桃在上海推介,向长三角消费者发出“甜蜜之邀”
  • “五一”假期银联、网联共处理支付交易234.39亿笔