Mybatis-Plus快速入门

参考:黑马MyBatisPlus教程全套视频教程,快速精通mybatisplus框架

1.Mapper-plus配置

1.@MapperScan("Mapper目录的位置")
2.Mapper层文件需要继承BaseMapper

extends BaseMapper<实体类>

3.开启日志
4.配置类

@Configuration
public class MybatisConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}

2.标准CRUD功能

3.分页查询

使用分页需要在配置类配置

4.条件查询

查询条件(eq、lt、ge、between、like、select)
1.普通格式
2.lambda格式
3.lambda格式
4.两个条件都取(链式编程)(and关系)
5.两个条件取其中一个(or关系)
6.null值处理(如果有些值没有传递怎么办)
传统方法if判断
条件参数控制

5.查询投影(qw.select)

就是需要数据库返回的字段,一般不用,我们定义VO对象返回就行

6.条件分页查询

// 假设要进行分页查询,每页显示10条记录,查询第1页,查询条件为 age > 25
//1.分页条件
IPage<User> page = new Page<>(1, 10);

//2.查询条件
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 25);

//3.获取分页数据
IPage<User> userPage = userMapper.selectPage(page, queryWrapper); // 调用 selectPage 方法

List<User> userList = userPage.getRecords();
long total = userPage.getTotal();
System.out.println("Total users (age > 25): " + total);
for (User user : userList) {
System.out.println("User: " + user);
}

7.实体类与表的映射

select=false是密码不被查询出去

8.删除

批量删除
// 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
// 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 ID 删除
int deleteById(Serializable id);
// 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);

关闭大驼峰自动转换

mybatis-plus:
configuration:
map-underscore-to-camel-case: false

如果删除实际上做的是值的更新

global-config:
db-config:
logic-delete-field: isDelete # 全局逻辑删除字段名
logic-delete-value: 1 # 逻辑已删除值
logic-not-delete-value: 0 # 逻辑未删除值

逻辑删除字段名前要加注解,才能被识别

业务层,持久层的这两个方法都会编程逻辑删除

9.yml文件配置

相关推荐
java_logo2 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
广州灵眸科技有限公司9 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
憧憬成为web高手12 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学12 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh14 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z1234567898615 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD15 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo15 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
TlSfoward16 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记16 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘