mybatisPlus基本用法
1.pom.xml
<!-- mybatisPlus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.3</version>
</dependency>
2.配置文件
3.实体类
@Data
@TableName("student")
public class Student {
@TableId(value = "sid", type = IdType.AUTO)
private Integer sid;
@TableField("name")
private String name;
private Integer age;
}
4.mapper
public interface StudentMapper extends BaseMapper<Student> {
}
4.1 常用方法
- int insert(T entity);
- int deleteById(Serializable id);
- int updateById(@Param(Constants.ENTITY) T entity);
- T selectById(Serializable id);
5.service
public interface StudentService extends IService<Student> {
}
5.1 常用方法
- boolean save(T entity);
- boolean removeById(Serializable id);
- boolean update(Wrapper
updateWrapper); - T getById(Serializable id);
- List
list(Wrapper queryWrapper);
6.分页
4.测试类
@SpringBootTest
@RunWith(SpringRunner.class)
public class TestStudent {
@Resource
private StudentMapper studentMapper;
@Test
public void test(){
List<Student> list = studentMapper.selectList(null);
list.forEach(System.out::println);
}
}
5.条件构造器
5.1 LambdaQueryWrapper
基于 Lambda 表达式的查询条件构造器,它通过 Lambda 表达式来引用实体类的属性,从而避免了硬编码字段名
- 带聚合函数
LambdaQueryWrapper<TSaleAutosaleorderPo> queryWrapper = new QueryWrapper<TSaleAutosaleorderPo>()
.select("pay_type", "count(*) as count")
.lambda()
.ne(TSaleAutosaleorderPo::getStatus, AutoSaleOrderStatusEnum.CANCELED.getKey())
- 基本使用
LambdaQueryWrapper<TSaleAutosaleorderPo> queryWrapper = new LambdaQueryWrapper<TSaleAutosaleorderPo>()
.ne(TSaleAutosaleorderPo::getStatus, AutoSaleOrderStatusEnum.CANCELED.getKey())
.eq(TSaleAutosaleorderPo::getAssignVehicleStatus, AssignVehicleStatusEnum.WPC.getKey())
.select(TSaleAutosaleorderPo::getId)
- 比较相关
gt(User::getAge, 18) >18
ge(User::getAge, 18) >=18
lt(User::getAge, 18) <18
le(User::getAge, 18) <=18
between(User::getAge, 18, 30) BETWEEN 18 AND 30