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

MyBatis-plus的IPage分页

单表的查询并根据时间分页

1、yml或者properties中配数据源,配自己的数据库就好。

mybatis-plus:mapper-locations: ../mapper/*.xmlconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  //这个是为了在控制台打印SQL语句。

2、导入Mybatis-Plus的依赖,我这里使用的是3.4.0的版本,这里一定要注意依赖的版本号,3.4.0以后,分页插件的配置进行了更新。这里强调一下,如果自带分页插件失效,先检查版本和配置。

        <!--MyBatis-plus配置--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</version></dependency>

3、新建一个config,这个config写Mybatis-Plus的插件配置,MP的插件配置有很多,这里单说一下分页的配置。

/***    注意@MapperScan,使用springboot的话,启动类是要扫描数据层的,如果仅用的是MP对数据    *    库操作,启动类里面的@MapperScan是不用写的,只写这里就好。**/@Configuration
@MapperScan("com.tiktang.dao")
public class MybatisPlusConfig {/*** IPage的分页使用的是拦截器,属于物理分页,好处就是处理大量数据时,查询速度快。*    有兴趣的同学可以看看什么是物理分页和逻辑分页。* @return*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();//向Mybatis过滤器链中添加分页拦截器interceptor.addInnerInterceptor(new            PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}@Beanpublic ConfigurationCustomizer configurationCustomizer() {return configuration -> configuration.setUseDeprecatedExecutor(false);}
}

4、单表的实体类entity对象,自己数据库中的字段,此步进行了省略。

5、程序的步骤,我一般习惯先写Mapper.xml,Mapper,service,serviceImpl,controller。按这个步骤来说,首先要先写的是Mapper.xml,但是是单表操作,又是用MP框架,就不用再写Mapper.xml了。

6、Mapper

//News为实体类
@Repository
public interface NewsMapper extends BaseMapper<News> {}

7、service

//News为实体,page为当前页,pageSize是一页多少个
public interface NewsService {IPage<News> queryNewsList(Integer page, Integer pageSize);
}

8、serviceImpl

@Service
public class NewsServiceImpl implements NewsService {@Autowiredprivate NewsMapper newsMapper;@Overridepublic IPage<News> queryNewsList(Integer page, Integer pageSize) {
//      Page<News> page1 = new Page<>(page,pageSize);//这里进行了时间排序QueryWrapper<News> queryWrapper = new QueryWrapper<>();queryWrapper.orderByDesc("news_time");//MP自带的selectPage方法,有兴趣的同学,可以看一下源码IPage<News> iPage = newsMapper.selectPage(new Page<>(page, pageSize), queryWrapper);return iPage;}}

9、controller

    @GetMapping("/newsList")public Result<News> queryNewsList(@RequestParam Integer page,@RequestParam Integer pageSize){IPage<News> iPage = newsService.queryNewsList(page, pageSize);return Result.ok().data("iPage",iPage);}

Result是我自己封装的结果集,有时间会再写一下关于返回统一结果集的内容。

到此单表查询分页并根据时间排序就完成。

2⃣️:

    @GetMapping("/getCompanyInvest")public Result getCompanyInvest(@RequestParam String companyId,@RequestParam Integer currentPage,@RequestParam Integer pageNumber){QueryWrapper<CompanyInvest> queryWrapper = new QueryWrapper<>();queryWrapper.eq("company_id",companyId);Page<CompanyInvest> page = new Page<>(currentPage,pageNumber);IPage<CompanyInvest> companyInvestIPage = companyInvestMapper.selectPage(page,queryWrapper);Map<String,Object> map = new HashMap<>();map.put("公司投资信息的子页面",companyInvestIPage);return Result.ok().data(map);}

http://www.lryc.cn/news/2417262.html

相关文章:

  • Verilog学习笔记13:使用CPLD内部振荡器
  • WDL脚本实战(一)-工作流、程序体、语法检查、输入输出及运行
  • 视频压缩和分析方面数据集 Tencent Video Dataset (TVD)
  • jQuery 效果 ——fadeIn() 方法、fadeOut() 方法
  • request.setAttribute()和request.getSession().setAttribute()解释
  • 三大工厂模式(简单工厂、工厂方法、抽象工厂)
  • 电力线载波通信PRIME PLC协议最新重要解读
  • Qt 图形视图框架<二>——<QGraphicsView、QGraphicsScene>
  • HTML中的表单
  • input设置为只读模式
  • 二值化神经网络(BNN)基础学习(一)
  • 网络安全中数据加密技术的发展趋势及相关应用
  • mywife.cc 神一样的存在!
  • Vulkan简介
  • Ubuntu之开篇
  • 第7章、单选按钮RadioGroup与复选框CheckBox(从零开始学Android)
  • class类文件结构
  • [创业-18]:财务报表之资产负债表
  • Python pdf2word -- pdf文件转word文件
  • JS+CSS仿admin5站长网首页导航菜单代码
  • 腾讯工蜂的使用
  • ​​Jmeter性能测试(性能测试,Jmeter使用与结果分析)
  • IPsec 9个包分析(主模式+快速模式)
  • androidP: apk安装流程
  • Parallel的使用 之Parallel.forrech
  • 详解 Android 中 BroadcastReceiver
  • 用spss进行主成分分析
  • php fakepath,chrome上传图片 路径为c:/fakepath的解决办法
  • 常见编码方式之间的区别
  • 经典算法研究系列:八、再谈启发式搜索算法