速通Mybatis-Plus

MyBatis-Plus 是一个基于 MyBatis 的增强工具,它简化了 MyBatis 的开发流程,提供了更便捷的 CRUD 操作、条件构造器、分页、代码生成等功能,使得 Java 开发者可以更轻松地与数据库交互,提高开发效率。

一:常见注解

参数是指定泛型,此处为user类,MP基于反射得到实体类信息

简单来说,实体类跟数据库表一一对照,正因如此,mp才可以自动帮我们生成sql语句

默认规则:

  • 类名驼峰转下划线作为表名

  • 名为id的键作为主键

  • 变量名驼峰转下划线作为表的字段名

用于自动生成代码时替换为对应的表名和字段名

举例:

(is开头mp会识别is自动去除,所以要加上field注解;如果是数据库字段如order,需要加上模板字符串)

二、核心功能

条件构造器

Wrapper,就是条件构造器。

它有一子类abstractWrapper

queryWrapper在abstractWrapper基础上拓展了select功能

Update拓展了set部分,传入string,用字符串的形式把set的部分写入Sql语句里


用法演示:

需求以及SQL语句:

需求:

利用MP可以写成:

需求:

利用MP可以写成:

需求:

针对这边需求,使用setSql可直接写sql语句:


刚刚Wrapper父子类树状图中左下角三个lambda相关的wrapper,只是基于lambda语法,其他都一样,参数中传函数而不是传字符串

总结:


自定义sql

我们可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。

原有方法的弊端:在setsql中写sql语句,这属于业务逻辑,为了规范化不应写在这里

标准写法:

  1. 基于Wrapper构建where语句

2.在mapper方法参数中用Param注解声明wrapper变量名称,必须是ew

 
 

void updateBalanceByIds(@Param("ew") LambdaQueryWrapper<User> wrapper, @Param("amount") int amount);

3.在xml中自定义sql,并使用Wrapper条件

例子:


Service接口

提供了一个iService接口,提供了大量用于增删改查的方法

查单个,查数目(count)

查多个,分页查询(page)

如何继承 iService:

我们的UserService从iService继承了大量的接口,但接口需要写实现类,为了避免写大量实现类,如何解决?

MP中的iService本身有一个实现类ServiceImpl,我们用UserServiceImpl继承ServiceImpl就可以。


三、实例演示

1. 首先在项目的domain中创建dto和vo类;

2. 编写UserController

在 Java 中使用注解 @RequiredArgsConstructor 通常是使用 Lombok 库提供的功能。这个注解会生成一个构造函数,该构造函数接受所有被声明为 final 的未初始化字段作为参数,并以它们的顺序初始化这些字段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值