MybatisPlus使用小结

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

Pom配置

maven:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>最新版本</version>
</dependency>

应用

增删改查

组合查询接口(调用 mybatis 的接口)

分页查询接口

写法1:知道该方法顺序和步骤时候采用,将步骤用中文注释方式罗列出来,再将中文注释翻译成代码;

写法2:知道调用的结果,根据调用的结果反推出上面的步骤

cityDao2.selectPage(page, wrapper); ---- 需要 page 对象,还需要一个 wapper 对象

Page page = new Page(search.getCurrentPage(), search.getPageSize()); ---- 构造 page 对象

QueryWrapper<City> wrapper = new QueryWrapper(); ---- 构造 wapper 对象

wrapper.like(…… ---- 设置查询条件,根据实际的 sql 语句,调用其映射的方法

模糊查询 ----- like

条件链接 ----- or、and

排序 ---- orderBy

1.BaseMapper集成单表crud功能

假如有一个实体类User,要使用mybatis实现增删改查需要写很多的xml配置文件来实现,但是用mybatisplus之后直接继承BaseMapper接口即可实现,无需编写任何的xml文件,代码如下

publicinterfaceUserMapperextendsBaseMapper{ }//继承之后即可直接使用BaseMapper中的增删改查方法,例如userMapper.selectById(id); userMapper.deleteById(id); userMapper.updateById(user); userMapper.insert(user);

2.集成分页功能

mybatisplus集成了很好用的分页功能,在执行sql查询的时候,传入一个pagination的对象即可实现自动分页.Pagination对象中主要的成员变量如下:

/**

    * 总数

    */privateinttotal;/**

    * 每页显示条数,默认 10

    */privateintsize=10;/**

    * 总页数

    */privateintpages;/**

    * 当前页

    */privateintcurrent =1;/**

    * 查询总记录数(默认 true)

    */privatebooleansearchCount =true;/**

    * 开启排序(默认 true) 只在代码逻辑判断 并不截取sql分析

    *

    * @see com.baomidou.mybatisplus.mapper.SqlHelper#fillWrapper

    **/privatebooleanopenSort =true;/**

    * 优化 Count Sql 设置 false 执行 select count(1) from (listSql)

    */privatebooleanoptimizeCountSql =true;/**

    *

    * SQL 排序 ASC 集合

    *

    */privateList ascs;/**

    *

    * SQL 排序 DESC 集合

    *

    */privateList descs;/**

    * 是否为升序 ASC( 默认: true )

    *

    * @see #ascs

    * @see #descs

    */privatebooleanisAsc =true;/**

    *

    * SQL 排序 ORDER BY 字段,例如: id DESC(根据id倒序查询)

    *

    *

    * DESC 表示按倒序排序(即:从大到小排序)

    * ASC 表示按正序排序(即:从小到大排序)

    *

    * @see #ascs

    * @see #descs

    *

    */privateString orderByField;

对这些成员变量例如isAsc赋值,即可实现想要的分页功能

3.条件构造器实现复杂的sql查询

这个功能主要用户实现动态的sql拼接,主要用到的对象是EntityWrapper,通过生成一个EntityWrapper对象,然后通过该wrapper对象的方法实现sql的拼接.例如可以wrapper的eq方法实现sql中的=功能,like方法实现sql中的like功能,gt方法实现sql的>

4.代码自动生成

mybatis generator不知道大家有没有用过,就是更加表结构自动生成实体类和mapper及xml配置文件,mybatisplus在这个基础上提供了更强大的代码自动生成功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MybatisPlus 是一个 Mybatis 的增强工具,它简化了 Mybatis 的开发流程,提供了许多实用的功能,如自动生成 SQL、分页、逻辑删除等。下面是 MybatisPlus 的使用方法: 1. 引入 MybatisPlus 通过 Maven 引入 MybatisPlus 的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> ``` 2. 配置 MybatisPlus 在 Spring Boot 项目中配置 MybatisPlus,需要在 application.yml 文件中添加以下配置: ```yaml mybatis-plus: # mapper.xml 所在路径 mapper-locations: classpath:/mapper/*.xml # 实体类所在包 typeAliasesPackage: com.example.entity ``` 3. 定义实体类 实体类需要使用 MybatisPlus 提供的注解来标记字段,如 @Table、@Id、@TableField 等。例如: ```java @Data @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; @TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.UPDATE) private Date updateTime; @TableLogic private Integer deleted; } ``` 4. 定义 Mapper Mapper 接口需要继承 MybatisPlus 提供的 BaseMapper 接口,例如: ```java public interface UserMapper extends BaseMapper<User> { } ``` 5. 使用 MybatisPlus 使用 MybatisPlus 的查询、插入、更新、删除等操作,只需要调用 BaseMapper 接口提供的方法即可,例如: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User getUserById(Long id) { return userMapper.selectById(id); } @Override public boolean addUser(User user) { return userMapper.insert(user) > 0; } @Override public boolean updateUser(User user) { return userMapper.updateById(user) > 0; } @Override public boolean deleteUserById(Long id) { return userMapper.deleteById(id) > 0; } } ``` 以上就是 MybatisPlus 的基本使用方法。除了上述功能,MybatisPlus 还提供了许多其他实用的功能,如分页、逆向工程、多租户、动态表名等,可以根据具体需求进行使用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值