SpringBoot项目将mybatis升级为mybatis-plus的方法

下面是详细讲解 SpringBoot 项目将 Mybatis 升级为 Mybatis-Plus 的方法:

一、前置准备

1. 项目环境

SpringBoot版本:2.5.1

Mybatis版本:3.5.4

2. 引入依赖

在项目 pom.xml 中的 dependencies 中,加入以下依赖:

<!-- Mybatis-plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3.1</version>
</dependency>

同时也需要注释掉原本的 Mybatis 依赖,因为 Mybatis-Plus 依赖中已经包括了 Mybatis 的依赖:

<!-- Mybatis -->
<!-- <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency> -->

3. 配置 Mybatis-Plus

在 application.yml(或者 application.properties) 配置文件中,添加以下配置:

mybatis-plus:
  # 指定 xml 文件路径
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  # 实体类命名规范,使用驼峰命名规则
  global-config:
    db-config:
      column-underline: false
      table-underline: false
      # 下划线转驼峰命名规则
      # logic-delete-field: deleted
      # logic-delete-value: 1
      # logic-not-delete-value: 0
      # 逻辑删除配置

至此,准备工作完成。

二、升级方法

1. 修改 Mapper

在原本的 Mapper 接口上加上 @Mapper 注解(或者在 MapperScan 的扫描包中扫描到该接口),然后修改这个接口继承 Mapper,并且增加一些 Mybatis-Plus 提供的接口。

下面是一个示例:

@Mapper
public interface UserMapper extends BaseMapper<User> {
    // Mybatis-Plus 提供的 selectById 方法
    User selectById(Long id);
}

Mybatis-Plus 的 BaseMapper 接口中包含了基本的 CRUD 操作,还有一些常用的方法,例如 insertBatch、selectList 等等,具体可以查看官方文档。

2. 修改 Service

  • Service 接口的实现

修改 Service 接口的实现,将原本的 Mybatis 操作改为 Mybatis-Plus 操作。

下面是一个示例:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    // Mybatis-Plus 提供的 selectById 方法
    @Override
    public User getUserById(Long id) {
        return userMapper.selectById(id);
    }
}
  • 分页查询

Mybatis-Plus 中的分页查询与 Mybatis 中一样,都需要在调用接口时传入分页参数 Page,同时还可以使用 QueryWrapper(查询条件包装器)进行查询过滤。

下面是一个示例:

@Override
public IPage<User> getUserList(int pageNum, int pageSize, String name) {
    // 构建分页参数
    Page<User> page = new Page<>(pageNum, pageSize);

    // 构建查询条件
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.like("name", name);

    return userMapper.selectPage(page, queryWrapper);
}

3. 示例

下面是一个完整的示例:

/**
 * User 数据库操作类
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {
    // Mybatis-Plus 提供的 selectById 方法
    User selectById(Long id);
}


/**
 * User 业务接口类
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    // Mybatis-Plus 提供的 selectById 方法
    @Override
    public User getUserById(Long id) {
        return userMapper.selectById(id);
    }

    @Override
    public IPage<User> getUserList(int pageNum, int pageSize, String name) {
        // 构建分页参数
        Page<User> page = new Page<>(pageNum, pageSize);

        // 构建查询条件
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.like("name", name);

        return userMapper.selectPage(page, queryWrapper);
    }
}

/**
 * User 控制器类
 */
@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/user/{id}")
    public User getUserById(@PathVariable("id") Long id) {
        return userService.getUserById(id);
    }

    @GetMapping("/user/list")
    public IPage<User> getUserList(@RequestParam("pageNum") int pageNum,
                                   @RequestParam("pageSize") int pageSize,
                                   @RequestParam("name") String name) {
        return userService.getUserList(pageNum, pageSize, name);
    }
}

至此,完整的 SpringBoot 项目将 Mybatis 升级为 Mybatis-Plus 的方法已经讲解完毕。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot项目将mybatis升级为mybatis-plus的方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 浅谈Java抽象类和接口的个人理解

    浅谈Java抽象类和接口的个人理解 Java是一门面向对象编程语言,面向对象编程的三大特性是封装、继承和多态。抽象类和接口都是Java中体现多态的机制。 抽象类 抽象类是不能被实例化的类,它通常被用于抽象出多个类中的共性并定义出它们的方法名、参数列表、返回类型和访问类型,由其子类来实现这些方法。 抽象类的定义方式为: public abstract clas…

    Java 2023年5月20日
    00
  • SpringBoot项目访问任意接口出现401错误的解决方案

    当我们使用SpringBoot项目访问任意接口时出现401错误,可能是因为项目的权限配置问题导致的。下面是解决它的完整攻略: 1.检查接口权限 首先我们需要检查接口权限,确定是否已经在项目中配置了相应的权限。我们可以通过查看Spring Security配置文件(一般为SecurityConfig.java)的代码或者在SpringBoot Admin管理后…

    Java 2023年5月20日
    00
  • Java日常练习题,每天进步一点点(53)

    Java日常练习题,每天进步一点点(53) 这是一组Java练习题,旨在帮助Java初学者提高编程能力。在本文中,我们将详细讲解Java日常练习题,并提供两个示例来说明如何解决这些问题。 练习题 编写一个Java程序,计算1到100之间所有偶数的和。 编写一个Java程序,将一个字符串中的所有空格去掉。 编写一个Java程序,判断一个字符串是否为回文字符串。…

    Java 2023年5月18日
    00
  • Java实现多文件压缩打包的方法

    当我们需要将一个大型项目的多个文件打包压缩成一个文件时,Java 提供了一些方法用于实现压缩和解压缩操作。为了实现多文件压缩打包,我们将会使用 Java 的 ZIP 压缩工具,用于将多个文件打包压缩成一个 ZIP 文件。 下面是实现多文件压缩打包的完整攻略: 1. 引入依赖 Java 自带了 ZIP 文件的压缩和解压缩类库,我们只需要引入 Java 标准类库…

    Java 2023年5月19日
    00
  • JSP跨iframe如何传递参数实现代码

    JSP是一种在服务端生成HTML的技术,它能够在生成HTML前进行一些运算和编写,进而方便动态生成页面。在一些特定场景中,如果我们需要在iframe之间传递参数并改变其显示内容,就需要使用JSP来实现 实现方法 在这里,我们可以使用GET方式传递参数,具体实现步骤如下: 在当前iframe中的a标签中编写一个函数,使其在被点击时触发传参的操作,传递参数的同时…

    Java 2023年6月15日
    00
  • Java的Struts框架报错“NullModuleException”的原因与解决办法

    当使用Java的Struts框架时,可能会遇到“NullModuleException”错误。这个错误通常由以下原因之一起: 配置错误:如果配置文件中没有正确配置,则可能会出现此错误。在这种情况下,需要检查文件以解决此问题。 模块名称:如果模块名称不正确,则可能出现此错误。在这种情况下,需要检查模块名称以解决此问题。 以下是两个实例: 例 1 如果配置文件中…

    Java 2023年5月5日
    00
  • Spring Security自定义认证器的实现代码

    下面我将详细讲解关于Spring Security自定义认证器的实现代码的攻略。 第一步:创建一个自定义的认证器类 在Spring Security中,自定义的认证器需要继承AbstractAuthenticationProcessingFilter类,实现其中的attemptAuthentication方法,该方法用于对用户提交的认证请求进行身份认证。 我…

    Java 2023年6月3日
    00
  • java基于jdbc连接mysql数据库功能实例详解

    Java基于JDBC连接MySQL数据库功能实例详解 前言 在Java程序中,经常需要使用数据库进行数据的存储和读取,而MySQL是广泛使用的开源关系型数据库之一。本文讲解使用Java的JDBC API连接MySQL数据库的方法和步骤,以及常见的增删查改操作。 步骤 1. 导入JDBC驱动 使用Java访问MySQL数据库需要导入MySQL JDBC连接驱动…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部