MybatisPlus 中 的 SQL 使用函数

官网查询对应的函数:

https://baomidou.com/pages/10c804/#ge

测试函数实例:

1、定义实体类:

数据库自己去建一张表对应的。

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_user")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 密码,加密存储
     */
    private String password;

    /**
     * 昵称,默认是随机字符
     */
    private String nickName;

    /**
     * 用户头像
     */
    private String icon = "";

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

}

2、测试

/**
 * @author hzq
 * @date 2022年11月12日 14:20
 */
@SpringBootTest
public class WrapperTest {
	@Resource
	UserMapper userMapper;

	@Test
	public void contextLoads() {
		QueryWrapper<User> wrapper = new QueryWrapper<>();
		wrapper.isNotNull("phone");
		userMapper.selectList(wrapper).forEach(s -> {
			System.out.println(s);
		});
	}

	/**
	 * 查询多条数据使用selectList
	 * 主要测试 如何查询只需要 1条数据的场景
	 */
	@Test
	public void contextOne() {
		QueryWrapper<User> wrapper = new QueryWrapper<>();
		wrapper.eq("nick_Name","小鱼同学");
		String name = userMapper.selectOne(wrapper).getNickName();
		System.out.println(name);
	}

	/**
	 * 查询多条数据使用selectList
	 * 主要测试 如何查询多条数据场景
	 */

	@Test
	public void contextList(){
		QueryWrapper<User> wrapper = new QueryWrapper<>();
		List<User> list = userMapper.selectList(wrapper);
		System.out.println(list);
	}
	/**
	 * 根据id主键查询1-10 的用户
	 * 主要测试 between and 函数 场景
	 */
	@Test
	public void contextBetweenAnd(){
		QueryWrapper<User> wrapper = new QueryWrapper<>();
		wrapper.between("id", 1L, 10L);
		List<Object> objects = userMapper.selectObjs(wrapper);
		Integer count = userMapper.selectCount(wrapper);
		System.out.println("统计总个数:{}"+count);
		System.out.println("查询出的详细信息:{}"+objects);
	}
	/**
	 * <> !=
	 * 主要测试 不等于某个值 的场景
	 */
	@Test
	public void contextNe() {
		QueryWrapper<User> wrapper = new QueryWrapper<>();
		wrapper.ne("id", 1);
		List<User> users = userMapper.selectList(wrapper);
		System.out.println("统计总个数:{}"+users);
	}
	/** 其中AND表示并且的意思,OR表示或者的意思
	 *
	 *
	 * SELECT * from tb_user WHERE id =1 or id =5
	 * 测试 两个字段同时满足的场景(查询出来的是两条数据)
	 *
	 * 如果使用的and 的话 就是如下SQL 1 和 5 同时满足的场景才能查询来数据 所以试了下没查询数据在数据库
	 * SELECT * from tb_user WHERE id =1 and id =5
	 *
	 */
	@Test
	public  void  contextOr(){
		QueryWrapper<User> wrapper = new QueryWrapper<>();
		wrapper.eq("id",1).or()
				.eq("id",5);
		List<User> list = userMapper.selectList(wrapper);
		list.forEach(s ->{
			System.out.println(s);
		});
	}

}

3、and 和 or的讲解 (主要学习对象)

 https://zhuanlan.zhihu.com/p/250196593

总结:

写这篇文章的主要初心就是为了复习下之前学习的这些语法,因为工作中正好用到了,遇到一些问题,不得以在来看看自己跑下Demo喽。
如果有不对的地方还望各位指正错误,一定虚心接收!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值