Springboot mybatis-plus配置及用法详解

yizhihongxing

SpringBoot Mybatis-Plus配置及用法详解

Mybatis-Plus是Mybatis的增强工具,可以简化Mybatis的开发流程,提高开发效率。本攻略将详细介绍如何在SpringBoot中配置Mybatis-Plus,并演示其用法。

配置Mybatis-Plus

引入依赖

首先,我们需要在pom.xml文件中引入Mybatis-Plus的依赖:

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

配置数据源

接下来,我们需要在application.properties文件中配置数据源:

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

配置Mybatis-Plus

最后,我们需要在配置类中配置Mybatis-Plus:

@Configuration
@MapperScan("com.example.demo.mapper")
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

在上面的示例中,我们使用@MapperScan注解扫描Mapper接口,并使用@Bean注解创建PaginationInterceptor对象。

Mybatis-Plus用法

基本CRUD操作

Mybatis-Plus提供了一系列的基本CRUD操作,包括插入、更新、删除和查询。以下是一个示例:

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Override
    public List<User> listAll() {
        return list();
    }

    @Override
    public User getById(Long id) {
        return getById(id);
    }

    @Override
    public boolean saveUser(User user) {
        return save(user);
    }

    @Override
    public boolean updateUser(User user) {
        return updateById(user);
    }

    @Override
    public boolean deleteUser(Long id) {
        return removeById(id);
    }
}

在上面的示例中,我们使用ServiceImpl类来实现UserService接口,并继承了Mybatis-Plus提供的ServiceImpl类。在ServiceImpl类中,我们可以直接调用Mybatis-Plus提供的方法来实现基本的CRUD操作。

分页查询

Mybatis-Plus还提供了分页查询的功能。以下是一个示例:

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Override
    public IPage<User> listByPage(Integer pageNum, Integer pageSize) {
        Page<User> page = new Page<>(pageNum, pageSize);
        return page(page);
    }
}

在上面的示例中,我们使用Page类来创建分页对象,并调用Mybatis-Plus提供的page方法来实现分页查询。

示例

以下是一个完整的示例,演示如何在SpringBoot中配置Mybatis-Plus,并演示其用法:

@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@Configuration
@MapperScan("com.example.demo.mapper")
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Override
    public List<User> listAll() {
        return list();
    }

    @Override
    public User getById(Long id) {
        return getById(id);
    }

    @Override
    public boolean saveUser(User user) {
        return save(user);
    }

    @Override
    public boolean updateUser(User user) {
        return updateById(user);
    }

    @Override
    public boolean deleteUser(Long id) {
        return removeById(id);
    }

    @Override
    public IPage<User> listByPage(Integer pageNum, Integer pageSize) {
        Page<User> page = new Page<>(pageNum, pageSize);
        return page(page);
    }
}

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public List<User> listAll() {
        return userService.listAll();
    }

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

    @PostMapping("/users")
    public boolean saveUser(@RequestBody User user) {
        return userService.saveUser(user);
    }

    @PutMapping("/users")
    public boolean updateUser(@RequestBody User user) {
        return userService.updateUser(user);
    }

    @DeleteMapping("/users/{id}")
    public boolean deleteUser(@PathVariable Long id) {
        return userService.deleteUser(id);
    }

    @GetMapping("/users/page")
    public IPage<User> listByPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize) {
        return userService.listByPage(pageNum, pageSize);
    }
}

在上面的示例中,我们创建了一个SpringBoot应用程序,并在MybatisPlusConfig类中配置了Mybatis-Plus。在UserServiceImpl类中,我们使用ServiceImpl类来实现UserService接口,并继承了Mybatis-Plus提供的ServiceImpl类。在UserController类中,我们注入了UserService类的实例,并实现了基本的CRUD操作和分页查询。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot mybatis-plus配置及用法详解 - Python技术站

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

相关文章

  • 详解Spring Boot微服务如何集成fescar解决分布式事务问题

    详解Spring Boot微服务如何集成fescar解决分布式事务问题 本攻略将详细讲解Spring Boot微服务如何集成fescar解决分布式事务问题,包括fescar的概念、集成fescar的步骤、示例说明。 什么是fescar? fescar是阿里巴巴开源的分布式事务解决方案,可以帮助开发者解决分布式事务问题。fescar提供了一种可靠的、高性能的、…

    微服务 2023年5月16日
    00
  • Nacos配置中心的配置文件的匹配规则及说明

    Nacos配置中心的配置文件的匹配规则及说明 Nacos是一个开源的服务发现、配置管理和动态DNS系统。在Nacos中,配置中心是一个重要的组件,它负责管理应用程序的配置。在使用Nacos配置中心时,我们需要了解配置文件的匹配规则。本攻略将详细介绍Nacos配置中心的配置文件的匹配规则及说明。 配置文件的匹配规则 在Nacos配置中心中,配置文件的匹配规则是…

    微服务 2023年5月16日
    00
  • SpringCloud Nacos作为配置中心超详细讲解

    SpringCloud Nacos作为配置中心超详细讲解 在微服务架构中,我们通常需要使用配置中心来管理各个微服务的配置信息。SpringCloud Nacos是一个优秀的配置中心,它提供了丰富的功能和易于使用的API,可以帮助我们轻松地管理微服务的配置信息。本攻略将详细讲解如何使用SpringCloud Nacos作为配置中心,以便于我们在微服务架构中更好…

    微服务 2023年5月16日
    00
  • 详解php语言最牛掰的Laravel框架

    详解php语言最牛掰的Laravel框架 Laravel是一款基于PHP语言的Web应用程序框架,它采用了MVC架构模式,提供了一系列的工具和服务,使得Web应用程序的开发更加简单、快速和高效。本攻略将详细讲解Laravel框架的基本概念、使用方法和示例说明。 基本概念 MVC架构模式 Laravel采用了MVC架构模式,即Model-View-Contro…

    微服务 2023年5月16日
    00
  • Maven脚手架如何基于jeecg实现快速开发

    Maven脚手架如何基于jeecg实现快速开发 Maven脚手架是一种快速开发工具,可以帮助我们快速创建项目结构、配置文件、依赖等。Jeecg是一款基于代码生成器的快速开发平台,可以帮助我们快速生成代码、页面等。本攻略将介绍如何基于jeecg实现快速开发,并使用Maven脚手架来快速创建项目结构。 1. 创建Maven项目 首先,我们需要创建一个Maven项…

    微服务 2023年5月16日
    00
  • 如何配置feign全局log

    Feign是一个声明式的Web服务客户端,它使得编写Web服务客户端变得更加简单。在使用Feign时,我们可能需要记录请求和响应的日志,以便于调试和排查问题。本文将介绍如何配置Feign全局日志的完整攻略。 配置Feign全局日志 要配置Feign全局日志,我们需要按照以下步骤进行操作: 添加依赖:在项目的pom.xml文件中,我们需要添加Feign和Slf…

    微服务 2023年5月16日
    00
  • spring cloud oauth2 实现用户认证登录的示例代码

    Spring Cloud OAuth2 实现用户认证登录的示例代码 本攻略将详细讲解Spring Cloud OAuth2实现用户认证登录的示例代码,包括OAuth2的原理、使用、示例说明等内容。 OAuth2 原理 OAuth2是一种授权框架,它可以实现用户授权和资源访问的分离,从而提高了系统的安全性和可扩展性。OAuth2包括四种角色:资源所有者、客户端…

    微服务 2023年5月16日
    00
  • 服务发现与负载均衡机制Service实例创建

    服务发现与负载均衡机制Service实例创建 本攻略将详细讲解服务发现与负载均衡机制Service实例创建的完整过程,包括服务发现的概念、负载均衡机制的实现、Service实例创建的步骤等内容。 服务发现的概念 服务发现是指在分布式系统中,服务提供者将自己注册到服务注册中心,服务消费者从服务注册中心获取服务提供者的信息,从而实现服务调用的过程。服务发现可以帮…

    微服务 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部