一、入门案例
1、引入Mybatisplus的起步依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
2、定义Mapper
public interface UserMapper extends BaseMapper<User>{
}
二、常见注解
Mybatisplus中比较常见的几个注解如下:
@Tablename:用来指定表名
@TableId:用来指定表中的主键字段信息
@TableId(type = IdType.ASSIGN_ID)
IdType枚举:
AUTO:数据库自增长
INPUT:通过set方法自行输入
ASSIGN_ID:分配ID,接口IdentifierGenerator的方法nextId来生成id,默认实现类是DefaultidentifierGenerator雪花算法
@TableField:用来指定表中的普通字段信息
使用的常见场景:成员变量名与数据库字段名不一致;成员变量以is开头,且是布尔值;成员变量名与数据库关键字冲突;成员变量不是数据库字段。
三、条件构造器
四、自定义sql
我们可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。
①基于Wrapper构建where条件
List<Long> ids = List.of(1L,2L,4L);
int amount = 200;
//构建条件
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>().in(User::getId,ids);
//2.自定义SQL方法调用
userMapper.updateBalanceByIds(wrapper,amount);
②在mapper方法参数中用Param注解声明wrapper变量名称,必须是ew
void updateBalanceByIds(@Param("ew")) LambdaQueryWrapper<User> wrapper, @Param("amount") int amount);
③自定义SQL,并使用Wrapper条件
<update id="updateBalanceByIds">
UPDATE tb_user SET balance = balance - #{amount} ${ew.customSqlSegment}
</update>
五、Service接口