SpringBoot整合MyBatisPlus详解

下面是关于“SpringBoot整合MyBatisPlus详解”的完整攻略:

1. 环境准备

  • JDK 1.8及以上
  • Maven 3.0或更高版本
  • SpringBoot 2.x
  • MyBatisPlus 3.x

2. 依赖导入

在pom.xml文件中添加如下依赖:

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

3. 数据库配置

在application.yml文件中配置数据源及MyBatisPlus相关配置。以下是一个示例:

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

mybatis-plus:
  mapper-locations: classpath:mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true

4. 代码编写

4.1 创建实体类

在dao的包下创建一个实体类(如User.java),使用@TableName注解指定对应的表名,使用@TableId注解指定主键字段。

@Data
@TableName("t_user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String username;
    private String password;
    private String nickname;
}

4.2 创建Mapper接口

在dao的包下创建一个接口(如UserMapper.java),并继承BaseMapper接口。

public interface UserMapper extends BaseMapper<User> {
}

4.3 创建Service类

在service的包下创建一个Service类(如UserService.java),并使用@Service注解标注。

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public List<User> list(){
        return userMapper.selectList(null);
    }

    public User getById(Long id){
        return userMapper.selectById(id);
    }

    public int save(User user){
        return userMapper.insert(user);
    }

    public int update(User user){
        return userMapper.updateById(user);
    }

    public int remove(Long id){
        return userMapper.deleteById(id);
    }

}

4.4 创建Controller类

在controller的包下创建一个Controller类(如UserController.java),并使用@RestController注解标注。

@RestController
public class UserController {

    @Autowired
    private UserService userService;

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

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

    @PostMapping("/user")
    public int save(User user){
        return userService.save(user);
    }

    @PutMapping("/user")
    public int update(User user){
        return userService.update(user);
    }

    @DeleteMapping("/user/{id}")
    public int remove(@PathVariable Long id){
        return userService.remove(id);
    }

}

5. 运行测试

使用IDE或命令行启动应用,访问http://localhost:8080/user/list,可以看到返回的数据。

6. 示例

以下是两个示例:

6.1 插入数据

向数据库插入一条数据,示例代码如下:

User user = new User();
user.setUsername("username");
user.setPassword("password");
user.setNickname("nickname");
userService.save(user);

6.2 分页查询

使用MyBatisPlus提供的类Page进行分页查询,示例代码如下:

Page<User> page = new Page<>(currentPage, pageSize);
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("username", "username");
IPage<User> userIPage = userMapper.selectPage(page, wrapper);
List<User> userList = userIPage.getRecords();

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合MyBatisPlus详解 - Python技术站

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

相关文章

  • SpringMVC框架如何与Junit整合看这个就够了

    SpringMVC框架如何与Junit整合 本文将详细讲解如何使用Junit测试SpringMVC框架,并提供两个示例说明。 环境准备 在开始整合Junit和SpringMVC框架之前,我们需要准备以下环境: JDK 18或以上版本 Maven 3.6.3或以上版本 Tomcat 9.0或以上版本 Junit 5.7.2或以上版本 实现步骤 下面是整合Jun…

    Java 2023年5月17日
    00
  • rsa加密算法使用示例分享

    RSA加密算法是一种非对称加密算法,它在加密时使用了公钥(public key)和私钥(private key)两把不同的钥匙。公钥可以随意分发,而私钥只有持有者自己知道。本文将为大家详细讲解RSA加密算法的使用示例。 一、生成密钥对 在使用RSA加密算法之前,需要先生成公钥和私钥这两把钥匙。可以通过OpenSSL工具生成: # 生成2048位的RSA密钥对…

    Java 2023年5月19日
    00
  • Hibernate核心类和接口的详细介绍

    关于“Hibernate核心类和接口的详细介绍”的攻略如下: Hibernate 核心类和接口的详细介绍 SessionFactory SessionFactory 是 Hibernate 中最重要的类之一,用于创建 Session 对象。SessionFactory 是一个线程安全的、可被多个 Session 共用的对象。 SessionFactory 通…

    Java 2023年5月19日
    00
  • Spring Boot 多数据源处理事务的思路详解

    Spring Boot 多数据源处理事务的思路详解 为什么需要多数据源 在实际应用中,我们可能需要连接多个数据库来完成不同的业务需求,例如:用户数据存在 MySQL 数据库中,订单数据存在 MongoDB 数据库中,而且不同的数据源可能有不同的事务管理机制,为了更好地处理多数据源事务,我们需要进行多数据源处理。 Spring Boot 多数据源处理事务方案 …

    Java 2023年6月3日
    00
  • 关于JAVA中stream流的基础处理(获取对象字段和对象批量处理等)

    以下是关于JAVA中stream流的基础处理的完整攻略: 1. Stream概述 Stream是JAVA 8中新增的一个API,定义在Java.util.stream中。与I/O中的字节与字符的input与output流不同,Stream是操作集合和数组的高级抽象。Stream支持函数式编程,可以方便地通过filter、map、reduce等操作快速分析、处…

    Java 2023年5月26日
    00
  • 详解使用Spring Security OAuth 实现OAuth 2.0 授权

    详解使用Spring Security OAuth 实现OAuth 2.0 授权 什么是OAuth 2.0? OAuth 2.0是用于授权的标准协议,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或者将所有的数据转移到第三方应用。 Spring Security OAuth2 Spring Securit…

    Java 2023年5月20日
    00
  • httpclient重定向之后获取网址信息示例

    理解题意:本文旨在介绍如何利用 HttpClient 在网页发生重定向后获取最终网址信息的方法。本文将会提供两个示例帮助理解这个过程。 使用 HttpClient 获取重定向后的网址信息 在 HttpClient 中,针对重定向的处理分为两种: 允许重定向,并自动地重定向到最终站点,该方式称为自动重定向。 禁止重定向,返回非重定向的响应码,并在响应消息头中提…

    Java 2023年6月15日
    00
  • 使用kafka-console-consumer.sh不停报WARN的问题及解决

    下面是使用kafka-console-consumer.sh不停报WARN的问题及解决的完整攻略: 问题描述 在使用kafka-console-consumer.sh脚本消费kafka消息时,可能会出现不停报WARN的问题,警告信息如下: WARN [Consumer clientId=consumer-1, groupId=my-group] Connec…

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