springboot - mybatis plus

介绍

  • 基于SpringBoot项目
  • 标准的crud
    image

注意事项

  • 自动生成的Mapper一定要添加注解@Mapper,或者定义mapper的扫描包@MapperScan("cn.tjhis.api.mapper")
  • 如果有配置类,建议@MapperScan写到配置类上

几个注解

  • @TableName
  • @TableId
  • @TableField(value="pwd",select=false) 查询时隐藏
  • @TableField(exist=false) 数据库不存在的字段
  • @TableLogic 逻辑删除
  • @TableLogic(value="0",delval="1")
  • @Version 乐观锁

配置

mybatis-plus:
  global-config:
    banner: false
    db-config:
      id-type: input
      # 全局逻辑删除的实体字段名
      logic-delete-field: deleted
      # 逻辑已删除值(默认为 1)
      logic-delete-value: 1
      # 逻辑未删除值(默认为 0)
      logic-not-delete-value: 0

Oracle序列

  • 实体类加注解,指定序列名称
@TableName(value ="hisapi.MENU_INFO")
@KeySequence("hisapi.GEN_HIS_MAGIC_NO")
@Data
public class MenuInfo implements Serializable {
    /**
     * ID
     */
    @TableId
    private Long id;
}
  • 添加配置类
@Configuration
public class MybatisPlusConfig {
    /**
     * 配置主键的自动生成策略,这里选择使用Oracle的序列
     * @return  Oracle的序列
     */
    @Bean
    public IKeyGenerator iKeyGenerator(){
        return new OracleKeyGenerator();
    }
}

查询

  • 查询单条数据
LambdaQueryWrapper<Dept> wrapper = Wrappers.lambdaQuery(Dept.class).eq(Dept::getDeptno, 50);
Dept dept = service.getOne(wrapper);
  • 分页查询
public IPage<Brand> findPage(Brand brand, int page, int size) {
       // 构造分页查询
       IPage pageInfo = new Page(page, size);//分页参数
       // 条件查询器
       LambdaQueryWrapper<Brand> wrapper = Wrappers.lambdaQuery(Brand.class)
               .like(Brand::getName, brand.getName());
       //执行iservice的page查询
       pageInfo = brandMapper.selectPage(pageInfo, wrapper);
       return pageInfo;
   }
  • 通用查询
   wrapper.eq("实体类::查询字段", "条件值"); //相当于where条件

   wrapper.between("实体类::查询字段", "区间一", "区间二");//相当于范围内使用的between

   wrapper.like("实体类::查询字段", "模糊查询的字符"); //模糊查询like

   wrapper.groupBy("实体类::查询字段"); //相当于group by分组

   wrapper.in("实体类::查询字段", "包括的值,分割"); //相当于in

   wrapper.orderByAsc("实体类::查询字段"); //升序

   wrapper.orderByDesc("实体类::查询字段");//降序

   wrapper.ge("实体类::查询字段", "要比较的值"); //大于等于

   wrapper.le("实体类::查询字段", "要比较的值"); //小于等于
posted @ 2023-03-10 16:22  his365  阅读(26)  评论(0编辑  收藏  举报