boxmoe_header_banner_img

Hello! 欢迎来到 XG 博客!

加载中

文章导读

MyBatisPlus学习


avatar
XenonXG 2025年11月15日 49

1、MyBatisPlus是什么
2、MyBatisPlus使用方法
3、MyBatisPlus常见注解
4、MyBatisPlus配置文件有哪些配置,作用是什么
5、Wrapper有什么作用?有哪些对象

1,MyBatisPlus是什么

是MyBatis 的增强工具,在MyBatis的基础上只增强,不修改现有的MyBatis配置和注解,是一个提升效率的工具



2,使用方法

①先导入MyBatisPlus

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>3.5.12</version>
        </dependency>

②创建和表哦对应的javabean,javabean名字就是数据库的表名

比如

@Data
@SuperBuilder
@NoArgsConstructor
public class NursingProject {
    public Long id; // 主键
    public LocalDateTime createTime; // 创建时间
    public LocalDateTime updateTime; // 更新时间
    private Long createBy; // 创建人
    private Long updateBy; // 更新人
    private String remark; // 备注
    private String name; // 名称
    private Integer orderNo; // 排序号
    private String unit; // 单位
    private BigDecimal price; // 价格
    private String image; // 图片
    private String nursingRequirement; // 护理要求
    private Integer status; // 状态(0:禁用,1:启用)
}




③创建mapper接口,这个接口文件需要继承BaseMapper需要将对应的JavaBean传入泛型

@Mapper
public interface NursingProjectMapper extends BaseMapper<NursingProject> {
}

④调用

增删改查

@SpringBootTest
public class MyBatisPlusTest {

    @Autowired
    private NursingProjectMapper nursingProjectMapper;

    /***
     * 增加
     */
    @Test
    public void testAdd(){
        //添加对象实例
        NursingProject np = new NursingProject();
        np.setName("喝粥");
        np.setImage("http://baidu.com");
        //BigDecimal对象可以保证价格精确
        np.setPrice(new BigDecimal(100));
        np.setUnit("次");
        np.setNursingRequirement("无");
        np.setStatus(1);
        np.setOrderNo(1);
        nursingProjectMapper.insert(np);
    }

    /***
     * 根据ID删除
     */
    @Test
    public void testDelete(){
        nursingProjectMapper.deleteById(1989511641162838018L);
    }

    /***
     * 根据ID修改
     */
    @Test
    public void testUpdate(){
        NursingProject np = new NursingProject();
        np.setName("喂饭");
        np.setImage("http://baidu.com");
        np.setStatus(1);
        np.setId(1989511641162838018L);
        nursingProjectMapper.updateById(np);
    }

    /***
     * 根据ID查找
     */
    @Test
    public void testFindById(){
        NursingProject nursingProject = nursingProjectMapper.selectById(1989511641162838018L);
        System.out.println(nursingProject);
    }


3,MyBatisPlus常见注解

//设置表名,默认为类名
@TableName("student_projects")

// 设置主键和设置主键生成策略
@TableId(value = "id",type = IdType.AUTO)

//属性映射到数据库
@TableField(value = "order_no")

//指定字段在数据库不存在
@TableField(exist = false)

//指定逻辑删除字段
@TableLogic(value = "0", delval  = "1")


4,MyBatisPlus配置文件有哪些配置,作用是什么

mybatis-plus:
  //指定mapper的xml文件位置
  mapper-locations: classpath*:mapper/*.xml
  //指定实体类的位置
  type-aliases-package: com.example.entity
  configuration:
    //开启驼峰命名自动转换
    map-underscore-to-camel-case: true
    //指定日志类
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      #全局id类型为自增长
      id-type: auto
      #更新策略,只更新非空字段
      update-strategy: not_null
      #局逻辑删除的实体字段名,字段类型可以是boolean、integer
      logic-delete-field: deleted
      #已经删除的值
      logic-delete-value: 1
      #未删除值
      logic-not-delete-value: 0


5,Wrapper有什么作用?有哪些对象

Wrapper是MyBatis-Plus提供的条件构造器,可以更加方便的过滤数据

//基础查询条件构造器
QueryWrapper<T>
//基于 Lambda 表达式的查询条件构造器
LambdaQueryWrapper<T>
//基础更新条件构造器
UpdateWrapper<T>
//基于 Lambda 表达式的更新条件构造器
LambdaUpdateWrapper<T>


评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码