MybatisPlus

<dependency>

<groupId>com.baomidou</groupId>

<artifactId>mybatis-plus-boot-starter</artifactId>

<version>3.4.1</version>

</dependency>

MyBatisPlus特性

无侵入:只能增强不做改变,不会对现有工程产生影响

强大的CRUD操作:内置通用Mapper,少量配置即可实现单表CRUD操作

支持 Lambda: 编写查询条件无需担心字段写错

支持主键自动生成:

内置分页查询

@Configuration

public class MpCongfig{

@Bean

public MybatisPlusInterceptor pageInterceptor(){

MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

interceptor.addInnerInterveptor(new PaginationInnerInteceptor());

return interceptor

}

}

链式编程不推荐因为太长

LambdaQueryWrapper<User>lqw = new LambdaQueryWrapper<User>();

lqw.select(User::getId,User::getName,User::getAge);

List<User>userList = userDao.selectList(lqw);

查询结果包含模型类未定义的属性

QueryWrapper<User>qm=new QueryWrapper<User>();

qm.select("count(*) as nums,gender");

qm.groupBy("gender");

List<Map<String,Object>>maps=userDao.selectMaps(qm);

字段映射与表面映射

@TableField

类型: 属性注解

作用: 设置当前属性对应的数据哭表中的字段关系

逻辑删除:为数据设置是否可用状态字段,删除时设置状态字段为不可用状态,数据保留在数据库中

相关推荐
阿成学长_Cain20 分钟前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
yqcoder1 小时前
httpOnly 是什么,又有什么用?
开发语言·前端·javascript
IT_陈寒1 小时前
Java的Stream.parallel()把我CPU跑爆了,这种优化要谨慎
前端·人工智能·后端
山登绝顶我为峰 3(^v^)31 小时前
C/C++ 交叉编译方法
java·c语言·c++
小皮虾1 小时前
小程序首页性能优化实战:从 4 秒到 1.8 秒
前端·微信小程序
山河木马1 小时前
GPU自动处理专题1-裁剪到底在裁什么(裁剪)
前端·webgl·计算机图形学
奔跑的蜗牛ing1 小时前
CentOS Nginx 安装与静态文件服务器配置指南
前端·面试·架构
一叶飘零_sweeeet1 小时前
Codex 与 Claude Code 深度拆解:两代 AI 编程智能体的技术本质与 Java 实战指南
java·ai·codex·claude code
子兮曰2 小时前
Bun 重写为 Rust:11天、64个Claude、16.5万美元,一次改变行业认知的激进实验
前端·后端·bun