Java|Java mybatis-plus详解

目录

  • 1、简介
  • 2、适用情况
  • 3、mybatis-plus前期准备(工程将以 H2 作为默认数据库进行演示)
    • 1、使用 Spring Initializer快速初始化一个 Spring Boot 工程
    • 2、导入mybatis-plus依赖
    • 3、yml文件中添加相关配置
    • 4、在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹
    • 5、编写实体类和Mapper类
    • 6、service继承IService
    • 7、serviceImpl继承ServiceImpl
  • 4、mybatis-plus的sql操作(Service层)
    • 1、Save:插入
    • 2、SaveOrUpdate:修改插入
    • 3、Remove:删除
    • 4、Update:更新
    • 5、Get:单体查询
    • 6、List:多条查询
    • 7、Page:分页查询(需要导入相关的配置或依赖)
    • 8、Count:记录数据个数
  • 5、详细资料
    • 总结

      1、简介
      MyBatis-Plus 是一个 Mybatis 增强版工具,在 MyBatis 上扩充了其他功能没有改变其基本功能,为了简化开发提交效率而存在。
      【Java|Java mybatis-plus详解】
      2、适用情况
      1、对于只进行单表操作来说,mybatis-plus代码量比mybatis的代码量少很多,极大的提高了开发效率
      2、对于多表操作来说,更推荐mybatis,因为mybatis-plus的方法比较难以理解,用起来不太方便,不如自己写sql语句的逻辑那么清晰明了

      3、mybatis-plus前期准备(工程将以 H2 作为默认数据库进行演示)
      1、使用 Spring Initializer快速初始化一个 Spring Boot 工程


      2、导入mybatis-plus依赖
      org.springframework.bootspring-boot-starter-parentspring-latest-versionorg.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-testtestcom.baomidoumybatis-plus-boot-starterLatest Versioncom.h2databaseh2runtime


      3、yml文件中添加相关配置
      # DataSource Configspring:datasource:driver-class-name: org.h2.Driverschema: classpath:db/schema-h2.sqldata: classpath:db/data-h2.sqlurl: jdbc:h2:mem:testusername: rootpassword: test


      4、在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹
      @MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")


      5、编写实体类和Mapper类
      //entity@Datapublic class User {private Long id; private String name; private Integer age; private String email; }//Mapperpublic interface UserMapper extends BaseMapper {}


      6、service继承IService
      public interface UserService extends IService


      7、serviceImpl继承ServiceImpl
      public class UserServiceImpl extends ServiceImpl implements UserService


      4、mybatis-plus的sql操作(Service层)
      1、Save:插入
      // 插入一条记录(选择字段,策略插入)boolean save(T entity); // 插入(批量)boolean saveBatch(Collection entityList); // 插入(批量)boolean saveBatch(Collection entityList, int batchSize);

      Java|Java mybatis-plus详解
      文章图片



      2、SaveOrUpdate:修改插入

      // TableId 注解存在更新记录,否插入一条记录boolean saveOrUpdate(T entity); // 根据updateWrapper尝试更新,否继续执行saveOrUpdate(T)方法boolean saveOrUpdate(T entity, Wrapper updateWrapper); // 批量修改插入boolean saveOrUpdateBatch(Collection entityList); // 批量修改插入boolean saveOrUpdateBatch(Collection entityList, int batchSize);

      Java|Java mybatis-plus详解
      文章图片



      3、Remove:删除
      // 根据 entity 条件,删除记录boolean remove(Wrapper queryWrapper); // 根据 ID 删除boolean removeById(Serializable id); // 根据 columnMap 条件,删除记录boolean removeByMap(Map columnMap); // 删除(根据ID 批量删除)boolean removeByIds(Collection idList);


      4、Update:更新
      // 根据 UpdateWrapper 条件,更新记录 需要设置sqlsetboolean update(Wrapper updateWrapper); // 根据 whereWrapper 条件,更新记录boolean update(T updateEntity, Wrapper whereWrapper); // 根据 ID 选择修改boolean updateById(T entity); // 根据ID 批量更新boolean updateBatchById(Collection entityList); // 根据ID 批量更新boolean updateBatchById(Collection entityList, int batchSize);

      Java|Java mybatis-plus详解
      文章图片



      5、Get:单体查询
      // 根据 ID 查询T getById(Serializable id); // 根据 Wrapper,查询一条记录。结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")T getOne(Wrapper queryWrapper); // 根据 Wrapper,查询一条记录T getOne(Wrapper queryWrapper, boolean throwEx); // 根据 Wrapper,查询一条记录Map getMap(Wrapper queryWrapper); // 根据 Wrapper,查询一条记录 V getObj(Wrapper queryWrapper, Function mapper)

      Java|Java mybatis-plus详解
      文章图片



      6、List:多条查询
      // 查询所有List list(); // 查询列表List list(Wrapper queryWrapper); // 查询(根据ID 批量查询)Collection listByIds(Collection idList); // 查询(根据 columnMap 条件)Collection listByMap(Map columnMap); // 查询所有列表List listMaps(); // 查询列表List listMaps(Wrapper queryWrapper); // 查询全部记录List listObjs(); // 查询全部记录 List listObjs(Function mapper); // 根据 Wrapper 条件,查询全部记录List listObjs(Wrapper queryWrapper); // 根据 Wrapper 条件,查询全部记录 List listObjs(Wrapper queryWrapper, Function mapper);
      Java|Java mybatis-plus详解
      文章图片



      7、Page:分页查询(需要导入相关的配置或依赖)
      // 无条件分页查询IPage page(IPage page); // 条件分页查询IPage page(IPage page, Wrapper queryWrapper); // 无条件分页查询IPage pageMaps(IPage page); // 条件分页查询IPage pageMaps(IPage page, Wrapper queryWrapper);

      Java|Java mybatis-plus详解
      文章图片



      8、Count:记录数据个数
      // 查询总记录数int count(); // 根据 Wrapper 条件,查询总记录数int count(Wrapper queryWrapper);


      5、详细资料
      由于篇幅有限,先写到这里
      具体内容请看
      1、mybatis-plus官网:https://mp.baomidou.com/
      2、MyBatis-Plus 通用IService使用详解

      总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

        推荐阅读