当前位置: 首页 > news >正文

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文件配置

http://www.lryc.cn/news/510448.html

相关文章:

  • Chrome被360导航篡改了怎么改回来?
  • Coding(Jenkinsfile)+ Docker 自动化部署 Springboot —— 图文细节和一些注意事项说明
  • docker django uwsgi 报错记录
  • 数据分析思维(五):分析方法——假设检验分析方法
  • 【ES6复习笔记】集合Set(13)
  • 基础爬虫案例实战
  • 深度学习工作:从追求 SoTA 到揭示新现象
  • 学习记录—正则表达式-基本语法
  • 智慧农业物联网传感器:开启农业新时代
  • 普通人怎么入门学习并使用AI?
  • Java中处理if-else的几种高级方法
  • 前端知识补充—CSS
  • 企业架构学习笔记-数字化转型
  • Linux网络——TCP的运用
  • Vue3之状态管理Vuex
  • DPO(Direct Preference Optimization)算法解释:中英双语
  • Hostapd2.11解析笔记
  • js控制文字溢出显示省略号
  • WPF+MVVM案例实战与特效(四十七)-实现一个路径绘图的自定义按钮控件
  • 操作002:HelloWorld
  • odoo中@api.model, @api.depends和@api.onchange 装饰器的区别
  • 有哪些精益工具可以帮助企业实现转型?
  • 以太网帧结构
  • QT调用Sqlite数据库
  • 前端
  • 【Git】—— 使用git操作远程仓库(gitee)
  • Paddler负载均衡器
  • OSCP - Proving Grounds - Slort
  • YoloV9改进策略:Head改进|DynamicHead,利用注意力机制统一目标检测头部|即插即用
  • BFD综合详细实验配置案例