Mybatis Plus select 实现只查询部分字段_java

来源:脚本之家  责任编辑:小易  
目录
Mybatis Plus select 查询部分字段select设置查询字段MyBatis-Plus之select、delete一、Mybatis-Plus之查询操作1、查询操作常用API2、分页查询二、Mybatis-Plus之删除操作1、物理删除操作常用API2、逻辑删除

Mybatis Plus select 查询部分字段

Mybatis Plus select语句默认查询所有字段,如需要指定字段查询,则需使用 QueryWrapper的select方法。

select

select(String... sqlSelect)  
select(Predicate<TableFieldInfo> predicate)  
select(Class<T> entityClass, Predicate<TableFieldInfo> predicate)

设置查询字段

说明:

以上方法分为两类。

第二类方法为:过滤查询字段(主键除外),入参不包含 class 的调用前需要wrapper内的entity属性有值! 这两类方法重复调用以最后一次为准

例:指定查询主键,名字,年龄字段

select("id", "name", "age") 

例: 查询以test开头的属性

select(i ‐> i.getProperty().startsWith("test")) 

例:查询User对象中出除manager_id和create_time外其它所有字段的数据

select(User.class, info ‐> !info.getColumn().equals("manager_id") 
&& !info.getColumn().equals("create_time"))

MyBatis-Plus之select、delete

一、Mybatis-Plus之查询操作

1、查询操作常用API

根据ID查询测试代码如下:

//测试根据ID查询
@Test
public void testSelectById(){
	User user = userMapper.selectById(2L);
	System.out.println(user);
}

测试结果如下:

批量查询测试代码如下:

//测试批量查询
@Test
public void testSelectByBatchIds(){
	List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
	users.forEach(System.out::println);
}

测试结果如下:

使用map进行条件查询测试代码如下:

//按条件查询之使用map操作
@Test
public void testSelectByMap(){
	Map map = new HashMap();
	map.put("name","哈利油");
	map.put("age",18);
 
	List list = userMapper.selectByMap(map);
	list.forEach(System.out::println);
}

测试结果如下:

2、分页查询

分页在项目里使用得十分多,平时一般是使用pageHelpr插件进行分页,还可以使用原始的limit进行分页;MP其实内置了分页插件,使用步骤如下:

2.1、在配置类里注册分页插件

//注册分页插件
@Bean
public PaginationInterceptor paginationInterceptor(){
	return new PaginationInterceptor();
}

2.2、直接使用MP内置的Page对象进行分页,测试代码如下

@Test
public void testPage(){
	//参数1:当前页,参数2:页面大小
	Page<User> page = new Page<>(1,5);
	//用于排序
	page.setDesc("id");
	IPage<User> userIPage = userMapper.selectPage(page, null);
 
	userIPage.getRecords().forEach(System.out::println);
	System.out.println(userIPage.getTotal());
}

测试结果如下:

二、Mybatis-Plus之删除操作

1、物理删除操作常用API

根据ID删除测试代码如下:

//测试删除
@Test
public void testDeleteById(){
	userMapper.deleteById(1L);
}

测试结果如下:

根据ID批量删除测试代码如下:

//通过id批量删除
@Test
public void testDeleteBatchId(){
	userMapper.deleteBatchIds(Arrays.asList(2L,3L));
}

测试结果如下:

使用map进行条件删除测试代码如下:

@Test
public void testDeleteMap(){
	Map map = new HashMap();
	map.put("name","哈利油");
	userMapper.deleteByMap(map);
}

测试结果如下:

2、逻辑删除

在工作中有时需要使用到逻辑删除,逻辑删除即数据在数据库里没有被移除,而是通过一个变量来让它失效;一般管理员可以查看被逻辑删除的数据,这样可防止数据的丢失,类似于回收站功能

MP逻辑删除使用步骤如下:

2.1、在数据库里增加deleted字段

2.2、在实体类对应的属性上加上@TableLogic注解

2.3、在配置类里注册逻辑删除组件

//注册逻辑删除组件
@Bean
public ISqlInjector sqlInjector(){
	return new LogicSqlInjector();
}

2.4、在application.properties文件里配置已删除跟未删除用什么来表示

mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

2.5、测试逻辑删除

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

您可能感兴趣的文章:mybatis-plus 返回部分字段的解决方式Mybatis-Plus select不列出全部字段的方法MyBatis-Plus 查询指定字段的实现完美解决MybatisPlus插件分页查询不起作用总是查询全部数据问题MyBatis SELECT基本查询实现方法详解

  • 本文相关:
  • springboot实现发送邮件功能
  • java随机数随机字母的实现(微信抢红包小练习)
  • java并发系列之abstractqueuedsynchronizer源码分析(概要分析)
  • 重新认识java的system.in
  • java使用multicastsocket实现基于广播的多人聊天室
  • java字符串求并集的方法
  • 浅谈java 中的单元测试
  • springboot结合redis哨兵模式的实现示例
  • 如何用jfinal连接多个数据库
  • 基于jdk8总结java中的interrupt
  • 华硕P5Q 好还P5Q se plus好?
  • M2N-MX SE Plus
  • 请问M2n-mx se和M2n-mx se plus 有什么区别?二者的价格各是...
  • 华硕M2N-MX SE Plus主板,我想升级电脑的CPU和显卡
  • 华硕 M2N-MX SE Plus ( Nvidia nForce 430 (MCP61 ) ) 小型主板...
  • 华硕M2N-MX SE PLUS 主板的集成网卡找不到
  • X SE PLUS SERES这是什么意思
  • 华硕的版M2M-MX SE PLUS配AMD的4200+,有什么问题不?
  • X SE PLUS 的前置音频不响
  • 华硕m2n-mx se plus主板如何组建双通道
  • 华硕主板PK 华硕 M2N-MX SE Plus PK M2V-TVM
  • 华硕M2N MX SE PLUS主板能不能插两条内存?
  • 华硕主版m2n-mx se plus有4200+能超频吗?有谁知道?
  • are SE 1.06 Plus绿色免安装版[荐]
  • 华硕主板m2n mx se plus可以配影驰的9800gt显卡吗???
  • 华硕M2N-MX SE Plus和主板 华硕M2N-XE哪个好?
  • 华硕 P5Q SE PLUS 能插Intel 酷睿 i3 540 的U吧?
  • 华硕主板 ASUSTeK Computer INC. M2N-MX SE Plus最大支持...
  • 部分苹果iPhone6/Plus/SE升级iOS10后出现网络问题怎么办
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全c#教程vbvb.netc 语言java编程delphijavaandroidiosswiftscala易语言汇编语言r语言其它相关首页javamybatis-plus 返回部分字段的解决方式mybatis-plus select不列出全部字段的方法mybatis-plus 查询指定字段的实现完美解决mybatisplus插件分页查询不起作用总是查询全部数据问题mybatis select基本查询实现方法详解springboot实现发送邮件功能java随机数随机字母的实现(微信抢红包小练习)java并发系列之abstractqueuedsynchronizer源码分析(概要分析)重新认识java的system.injava使用multicastsocket实现基于广播的多人聊天室java字符串求并集的方法浅谈java 中的单元测试springboot结合redis哨兵模式的实现示例如何用jfinal连接多个数据库基于jdk8总结java中的interruptintellij idea 2020最新激活码(亲java使double保留两位小数的多方intellij idea 2020.2.3永久破解java8 十大新特性详解idea2020.2.2激活码与intellij iidea 2020版本最新破解教程可激活2020.2 intellij idea激活与ideajava.net.socketexception: connjava写入文件的几种方法分享java 十六进制与字符串的转换java四种常用线程池的详细介绍详解spring cloud finchley版中consul多实java结合百度云存储bcs代码分享intellij idea导入java项目并启动(图文教java人机猜拳实现的思路及方法实例手把手教你springboot过滤器n种注册方式实例解析json反序列化之objectmapper(自定浅谈springboot集成quartz动态定时任务mybatis-plus实现2种分页方法(querywrapp
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved