mybatis plus 日期查询_MyBatis-Plus条件查询——Wrapper

a9ff06db5f770cc2c97aa26757023f20.png

Wrapper

在MyBatis-Plus中,对于单表的查询我们基本上不用写sql语句的,那么对于一些带有条件判断的sql语句怎么办呢,官方提供了一个很强的东西——Wrapper条件构造器。

环境搭建

虽然上一篇文章已经搭建过环境了吧,但是我不太喜欢放链接跳来跳去的,再搭建一次吧。

首先创建一张数据库表

DROP TABLE IF EXISTS user;

CREATE TABLE user
(
    id BIGINT(20) NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (id)
);

对应的数据如下

DELETE FROM user;

INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

创建SpringBoot项目

创建一个普通的SpringBoot项目,然后引入依赖,既然要跟数据库打交道,connector肯定不能少

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.18</version>
</dependency>

另外要使用mybatis-plus,当然也要引入该starter

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
</dependency>

为了方便起见,这里引入Lombok

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

好了,依赖引入完毕,下面进行简单配置

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mybatis_plus?userSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: root

配置也写好了,那么可以开始用了,在操作之前需要先创建一个实体类。

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

实体类写好之后,编写一个mapper接口,只需继承BaseMapper,基本的单表查询都给你封装好了,真是太贴心了。

@Repository
@Mapper
public interface UserMapper extends BaseMapper<User> {

}

开启日志

9fdf034b15b14c3dbb7ea4d85406fe93.png
可以看到在官网中,有很多的条件构造器,这里演示几个比较常用的,其实本质还是sql语句,为了方便大家可以看到效果,这里开启日志功能。

只需在配置文件中加上这句话即可

# 配置日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

Wrapper测试

Wrapper是一个接口,官方提供了很多的实现类,我们通过其实现类去构造wrapper对象即可。

查询name不为空,且年龄大于等于20的用户

void wrapperTest1() {
    QueryWrapper<User> wrapper = new QueryWrapper<>();// 构建一个查询的wrapper
    wrapper
            .isNotNull("name")// 设置查询条件,name字段不为空
            .ge("age", 20);// 年龄大于等于20
    userMapper.selectList(wrapper);
}

4bb268a10ef16862246fedc724613c14.png

可以清楚的看到,这里生成的sql语句。

查询名字等于Jack的

void wrapperTest2() {
    QueryWrapper<User> wrapper = new QueryWrapper<>();// 构建一个查询的wrapper
    wrapper.eq("name", "Jack");// 设置name为Jack的条件
    userMapper.selectOne(wrapper);// 这里我们知道只有一个,所以直接用selectOne
}

aaacb38e3826d86dd4be3919f22df24c.png

范围查询

void wrapperTest3() {
    QueryWrapper<User> wrapper = new QueryWrapper<>();// 构建一个查询的wrapper
    wrapper.between("age",20, 30);// 设置范围
    userMapper.selectCount(wrapper);// 查询在该范围的数量
}

461a256b6b8f4454cf157bafa12d724c.png

模糊查询

void wrapperTest4() {
    QueryWrapper<User> wrapper = new QueryWrapper<>();// 构建一个查询的wrapper
    wrapper
            .notLike("name", "e")// 查询name中不含有e的
            .likeRight("email", "t");// 查询email中右模糊t->t%
    userMapper.selectList(wrapper);
}

1172c7ba5ffd013800b350266ed0d7ee.png

降序排序

void wrapperTest5() {
    QueryWrapper<User> wrapper = new QueryWrapper<>();// 构建一个查询的wrapper
    wrapper.orderByDesc("id");// 降序排序
    userMapper.selectList(wrapper);
}

c7a304307207ad4dcec523669d38efa9.png

感兴趣的剩下的自己可以测一下,今天的分享就到这里了,我们下期再见。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的使用Mybatis Plus函数的示例: 假设我们有一个表名为user,包含以下字段:id、name、age、email。 1. 首先,在pom.xml文件中添加Mybatis Plus的依赖: ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>latest version</version> </dependency> ``` 2. 在Mapper接口中定义查询方法,例如根据年龄age查询: ``` import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.ibatis.annotations.Param; import java.util.List; public interface UserMapper extends BaseMapper<User> { List<User> selectByAge(@Param("age") Integer age); } ``` 3. 在Service实现类中调用函数查询方法,例如查询年龄大于20的用户: ``` import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.List; @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Override public List<User> getByAge(Integer age) { QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.gt("age", age); // 使用Mybatis Plus的gt函数,查询年龄大于age的用户 List<User> userList = baseMapper.selectList(queryWrapper); return userList; } } ``` 这样就可以使用Mybatis Plus的函数查询数据了。除了gt函数,Mybatis Plus还提供了很多其他的函数,例如eq、ne、like、between等,具体可以参考官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值