经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MyBatis » 查看文章
Mybatis-plus如何查询表中指定字段(不查询全部字段)
来源:jb51  时间:2022/7/4 12:09:41  对本文有异议

查询表中指定字段(不查询全部字段)

场景

Mybatis-Plus中BaseMapper提供的方法默认查询的是数据库中表的所有字段,但是有时候,我们仅仅需要查询的是表的某个字段货主一些字段,查询全部的话数据量大时会出现效率问题,况且对于有强迫症的人简直是难以忍受!!!

解决

Mybatis-Plus中通过构建QueryWrapper来设置select方法指定需要查询的字段。

具体图片

只查询部分字段的两种方法

mybatis-plus(后面简称为mp)是mybatis的增强版,官方称之为 “ 只做增强,不做修改 ”。mp将一些简单的sql语句进行了封装和自动生成,提高了效率,但是降低了性能。

那么,用mybatis可以自己写sql,查询语句可以自由发挥,比如可以只查询表中的部分字段,对于mp也有两种针对此种需求的方法,下面就来介绍:

方法1

只需要查询出name和phone两个字段:使用queryWrapper的select()方法指定要查询的字段

  1. @Test
  2. ? ? public void selectByWrapper1() {
  3. ? ? ? ? QueryWrapper<User> queryWrapper = new QueryWrapper<>();
  4. ? ? ? ? queryWrapper.select("name", "phone").eq("age",25);
  5. ? ? ? ? List<User> users = userMapper.selectList(queryWrapper);
  6. ? ? ? ? users.forEach(System.out::println);
  7. ? ? }

方法2

查询出除age和address外其它所有字段的数据:同样使用queryWrapper的select()方法

  1. ? ? @Test
  2. ? ? public void selectByWrapper2() {
  3. ? ? ? ? QueryWrapper<User> queryWrapper = new QueryWrapper<>();
  4. ? ? ? ? queryWrapper.select(User.class, info -> !info.getColumn().equals("age")
  5. ? ? ? ? ? ? ? ? && !info.getColumn().equals("address")).eq("name","jack");
  6. ? ? ? ? List<User> users = userMapper.selectList(queryWrapper);
  7. ? ? ? ? users.forEach(System.out::println);
  8. ? ? }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue。 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号