原文地址----https://gitee.com/lihua3712/practice/tree/master/mybatis-plus/src/test/java/com/mybatisplus

一、基础方法的使用

package com.mybatisplus;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mybatisplus.mapper.UserMapper;
import com.mybatisplus.entity.User;
import net.minidev.json.JSONArray;
import net.minidev.json.JSONObject;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.Arrays;
import java.util.HashMap;
import java.util.List;@SpringBootTest
class MybatisPlusApplicationTests {@Autowiredprivate UserMapper userMapper;@Testpublic void contest() {List<User> users = userMapper.selectList(null);users.forEach(System.out::println);}/*** 查询操作*/@Testpublic void select() {System.err.println("-------------1-----------------");List<User> users1 = userMapper.selectList(null);users1.forEach(System.out::println);System.err.println("-------------2-----------------");// 1、查询用户信息User user2 = userMapper.selectById(1L);System.out.println(user2);System.err.println("--------------3----------------");List<User> users3 = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));users3.forEach(System.out::println);System.err.println("--------------4----------------");HashMap<String, Object> objectObjectHashMap = new HashMap<>();objectObjectHashMap.put("name", "Macrohua");objectObjectHashMap.put("age", 3);List<User> users4 = userMapper.selectByMap(objectObjectHashMap);users4.forEach(System.out::println);System.err.println("--------------5----------------");}/*** 测试分页查询*/@Testpublic void testPage() {//参数一:当前页//参数二:页面大小//使用了分页插件之后,所有的分页操作也变得简单的!Page<User> page = new Page<>(2, 2);IPage<User> userIPage = userMapper.selectPage(page, null);System.out.println("userIPage.getTotal() = " +userIPage.getTotal());System.out.println("userIPage.getCurrent() = " +userIPage.getCurrent());System.out.println("userIPage.getSize() = " +userIPage.getSize());System.out.println("userIPage.getPages() = " +userIPage.getPages());userIPage.getRecords().forEach(System.out::println);}@Testpublic void insert() {User user = new User();user.setName("Macrohua");user.setAge(99);user.setEmail("Macrohua");int insert = userMapper.insert(user);System.out.println(insert);}@Testpublic void update() {User user = new User();user.setName("lihua");user.setAge(18);user.setId(14L);int insert = userMapper.updateById(user);System.out.println(insert);}/*** 物理删除*/@Testpublic void delete() {int insert = userMapper.deleteById(13L);System.out.println(insert);System.err.println("--------------1---------------");int i = userMapper.deleteBatchIds(Arrays.asList(1, 2, 3));System.out.println(i);System.err.println("---------------2--------------");HashMap<String, Object> stringObjectHashMap = new HashMap<>();stringObjectHashMap.put("name", "lihua");int i1 = userMapper.deleteByMap(stringObjectHashMap);System.out.println(i1);System.err.println("---------------3--------------");}/*** 逻辑删除*/@Testpublic void logicDelete() {int insert = userMapper.deleteById(4L);System.out.println(insert);int batchIds = userMapper.deleteBatchIds(Arrays.asList(1, 2, 3));System.out.println(batchIds);}/*** 测试乐观锁成功!*/@Testpublic void testOptimisticLocker() {// 1、查询用户信息User user = userMapper.selectById(1L);// 2、修改用户信息user.setName("kuangshen");user.setEmail("24736743@qq.com");// 3、执行更新操作userMapper.updateById(user);}/*** 测试乐观锁失败!多线程下*/@Testpublic void testOptimisticLocker2() {//线程1User user = userMapper.selectById(1L);user.setName("lihua1111");user.setEmail("111111@qq.com");//模拟另一个线程执行了插入操作User user1 = userMapper.selectById(1L);user1.setName("lihua22222");user1.setEmail("22222@qq.com");userMapper.updateById(user1);//自旋锁进行多次尝试操作userMapper.updateById(user);}
}

二、Wrapper的使用

package com.mybatisplus;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mybatisplus.mapper.UserMapper;
import com.mybatisplus.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;
import java.util.Map;/*** @version v1.0.0* @Copyright (C), 2016-2021, 财税通软件有限公司* @Author: lihua* @Date: 2021-10-21 16:49  星期四* @Description:条件构造器测试*/
@SpringBootTest
public class WrapperTest {@Autowiredprivate UserMapper userMapper;@Testpublic void test1() {// 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.isNotNull("name").isNotNull("email").ge("age", 12);userMapper.selectList(wrapper).forEach(System.out::println); // 和我们刚才学习 的map对比一下}@Testpublic void test2() {// 查询名字狂神说QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.eq("name", "lihua22222");User user = userMapper.selectOne(wrapper); // 查询一个数据,出现多个结果使用List 或者 MapSystem.out.println(user);}@Testpublic void test3() {// 查询年龄在 20 ~ 30 岁之间的用户QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.between("age", 20, 30); // 区间Integer count = userMapper.selectCount(wrapper);// 查询结果数System.out.println(count);}/*** 模糊查询*/@Testpublic void test4() {// 查询年龄在 20 ~ 30 岁之间的用户QueryWrapper<User> wrapper = new QueryWrapper<>();// 左和右 t%wrapper.notLike("name", "e").likeRight("email", "t");List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);maps.forEach(System.out::println);}/*** 模糊查询*/@Testpublic void test5() {QueryWrapper<User> wrapper = new QueryWrapper<>();// id 在子查询中查出来wrapper.inSql("id", "select id from user where id<3");List<Object> objects = userMapper.selectObjs(wrapper);objects.forEach(System.out::println);}@Testpublic void test6() {QueryWrapper<User> wrapper = new QueryWrapper<>();// 通过id进行排序wrapper.orderByAsc("id");List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}
}

MybatisPlus基础用法示例相关推荐

  1. 【Linux防火墙】iptables基础用法及高级用法

    文章目录 iptables命令简介 1.语法 2.iptables命令选项输入顺序 3.选项讲解 4.基础用法示例 1.清除规则相关操作 2.查看相关规则及序列号 3.通过查看后的序列号删除规则 4. ...

  2. [网络安全自学篇] 三.Burp Suite安装配置、Proxy基础用法及流量分析示例

    最近开始学习网络安全相关知识,接触了好多新术语,感觉自己要学习的东西太多,真是学无止境,也发现了好几个默默无闻写着博客.做着开源的大神.接下来系统分享一些网络安全的自学笔记,希望读者们喜欢. 上一篇文 ...

  3. python循环语句画图_Python基础之循环语句用法示例【for、while循环】

    本文实例讲述了Python基础之循环语句用法.分享给大家供大家参考,具体如下: while 循环 Python中while语句的一般形式: while 判断条件: statements 同样需要注意冒 ...

  4. Go基础系列:双层channel用法示例

    Go channel系列: channel入门 为select设置超时时间 nil channel用法示例 双层channel用法示例 指定goroutine的执行顺序 双层通道的解释见Go的双层通道 ...

  5. Pandas基础用法合集(中文官档)

    本节介绍 pandas 数据结构的基础用法.下列代码创建示例数据对象: In [1]: index = pd.date_range('1/1/2000', periods=8) In [2]: s = ...

  6. Promise基础用法

    什么是Promise? Promise是用来处理异步的; Promise就是承诺,对未来的承诺; 所谓的Promise(承诺),里面保存着未来才会结束的事件的结果; Promise是异步编程的一种解决 ...

  7. pandas object转float_数据分析篇 | Pandas基础用法6【完结篇】

    这是最后一篇,至此Pandas系列终于连载完了,有需要的也可以看看前面6篇,尽请收藏. 数据分析篇 | Pandas 概览 数据分析篇 | Pandas基础用法1数据分析篇 | Pandas基础用法2 ...

  8. dubbo官方文档中文_Pandas中文官方文档:基础用法5

    本文授权转载自Python大咖谈禁止二次转载 大家好,我是老表 阅读文本大概需要 16 分钟 建议从头开始学习,本系列前四篇 Pandas中文官方文档:基础用法1 Pandas中文官方文档:基础用法2 ...

  9. db29.7时间格式化为时间到时分秒_python基础系列 | 示例讲解时间模块datetime

    Python 有很多种方式处理日期和时间,常见的时间处理的模块是datetime.time.calendar.能融汇贯通的了解和使用这三个模块,才能轻而易举地用python处理时间.本文以此为目的,通 ...

最新文章

  1. 数据千万条,备份第一条,数据找不回,老板两行泪
  2. RTL Schematic 与 Technology Schematic的区别?
  3. 设计模式总结篇系列:原型模式(Prototype)
  4. 5 个 Android 开发中比较常见的内存泄漏问题及解决办法
  5. 负载均衡Load Balance学习
  6. hibernate的type类型对照表
  7. 杭电1232 畅通工程
  8. boost::timer::auto_cpu_timer相关的测试程序
  9. Linq 下的 Take() 方法内部机制是怎样的?
  10. LeetCode 92. 反转链表 II(双指针)
  11. IntelliJ IDEA配置与搭建web项目入门使用
  12. HDU 3652:B-number(数位DP)
  13. 拓端tecdat|R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析
  14. 企业要实现用计算机完成存货管理,关于当前企业存货管理存在的问题及其完善措施...
  15. 虹科方案 | 全天候监控维护射频网络稳定运行,你不知道的新方案
  16. 新知实验室--腾讯云TRTC体验
  17. 2013江苏计算机二级vfp试题,2008年春季江苏省计算机等级考试二级VFP考试试题(含答案)...
  18. vue element 下拉框内容过长显示...鼠标悬浮显示全部
  19. 时序路径(Timing path)简介
  20. 部分互联网公司及通信公司校招时间表及薪资(参考2017)

热门文章

  1. Tensorflow深度学习实战之(五)--保存与恢复模型
  2. Redis深度历险-Redis Stream
  3. adb连接夜神模拟器出现error: cannot connect to daemon无法连接到守护程序
  4. 拼音(Ext.Pinyin.*)- 小白接口
  5. C#进行Visio二次开发之图纸打印
  6. 选购投影仪的注意事项都有哪些?详细攻略来了!
  7. 【Android实例】打地鼠小游戏
  8. 音频转换成文字的软件哪个好用
  9. 每天一个IDA小技巧(六)交叉引用
  10. abp Vnext OpenIddect 扩展微信小程序授权登录