spring boot整合mybatis+mybatis-plus的示例代码

下面我给您讲解一下“spring boot整合mybatis+mybatis-plus的示例代码”的完整攻略。

步骤1 - 添加依赖

首先,我们需要在 pom.xml 中添加以下依赖:

<!-- Spring Boot Mybatis Starter -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>

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

步骤2 - 添加配置

在 Spring Boot 的 application.properties 文件中,添加如下配置:

# Mybatis
mybatis.type-aliases-package=com.example.demo.entity
mybatis.mapper-locations=classpath:mapper/*.xml

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

其中,com.example.demo.entity 替换成您自己的实体类所在的包名,classpath:mapper/*.xml 表示 mapper 文件所在的路径。

步骤3 - 创建实体类

创建一个实体类,例如:

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
}

步骤4 - 创建Mapper文件

创建一个Mapper接口和xml文件,例如:

UserMapper.java

public interface UserMapper extends BaseMapper<User> {
}

UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.demo.mapper.UserMapper">

    <select id="selectById" resultType="com.example.demo.entity.User">
        select * from user where id = #{id}
    </select>

</mapper>

步骤5 - 创建Service和ServiceImpl

创建一个Service接口和Impl类,例如:

UserService.java

public interface UserService {
    User selectById(Long id);
}

UserServiceImpl.java

@Service
public class UserServiceImpl implements UserService{

    @Autowired
    private UserMapper userMapper;

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

步骤6 - 创建Controller

创建一个Controller,例如:

@RestController
public class UserController {

    @Autowired
    private UserService userService;

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

}

示例1 - 查询

接下来,我将为您演示如何使用上述的代码进行数据查询。

我们在UserController中添加一个查询接口:

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

在浏览器中访问 http://localhost:8080/user/1 ,结果将会返回数据库中id为1的用户信息:

{
  "id": 1,
  "name": "test",
  "age": 20
}

示例2 - 插入

我们可以在上述示例的基础上,再添加一个保存用户信息的接口:

@PostMapping("/user")
public String saveUser(@RequestBody User user) {
    userService.save(user);
    return "success";
}

在浏览器中提交一个POST请求,传递如下JSON数据:

{
  "name": "Jack",
  "age": 30
}

执行完成后,用户信息将会插入到数据库中。

好了,以上就是整合 Mybatis 和 Mybatis-Plus 的一个示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring boot整合mybatis+mybatis-plus的示例代码 - Python技术站

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

相关文章

  • Java实现支付宝之第三方支付宝即时到账支付功能

    Java 实现支付宝之第三方支付宝即时到账支付 介绍 本文将介绍如何使用 Java 实现支付宝第三方即时到账支付功能。该功能是指:客户在商家网站购买商品并付款后,商家立即收到钱款,并且客户能够及时地得到商品。 同时,本文也将涉及到支付宝网站接口的相关知识,包括接口的调用、数据传输与签名等。 准备工作 在开始实现功能前,需要先完成以下准备工作: 注册支付宝账户…

    Java 2023年6月15日
    00
  • Java 数据结构之堆的概念与应用

    Java 数据结构之堆的概念与应用 堆的概念 在计算机科学中,堆(Heap)是一种特殊的数据结构,是一棵树,每个父节点的键值都小于其子节点的键值,这样的堆成为小根堆(Min Heap),反之成为大根堆(Max Heap)。在堆中没有父子关系的节点之间也没有其他约束关系。常见的堆有二叉堆、斐波那契堆等。 对于小顶堆,任意节点的键值都小于或等于其子节点的键值,根…

    Java 2023年5月26日
    00
  • Windows下Java调用可执行文件代码实例

    Windows下Java调用可执行文件代码实例 在Windows系统下,Java程序可以通过调用可执行文件(exe文件)来实现一些特定功能。本文将详细讲解如何在Java程序中调用可执行文件的步骤和过程。 准备工作 在开始之前,需要确保Java和可执行文件均已安装并配置好环境变量。 第一步:创建ProcessBuilder对象 在Java程序中调用可执行文件,…

    Java 2023年5月19日
    00
  • Java SpringBoot 使用拦截器作为权限控制的实现方法

    下面我详细讲解“Java SpringBoot 使用拦截器作为权限控制的实现方法”的完整攻略。 前言 在 Web 应用中,通常需要对不同的用户(或用户组)进行权限控制,以保证数据和资源的安全。其中,Spring Security 是目前比较流行的安全框架,它提供了很多种安全特性,比如:认证、授权、防止 CSRF 攻击等。然而,在某些场景下,我们可能只需要简单…

    Java 2023年5月19日
    00
  • Java Apache POI报错“EmptyFileException”的原因与解决办法

    “EmptyFileException”是Java的Apache POI类库中的一个异常,通常由以下原因之一引起: 空文件:如果文件为空,则可能会出现此异常。例如,可能会尝试打开一个空的Excel文档。 以下是两个实例: 例1 如果文件为空,则可以尝试检查文件是否存在以解决此问题。例如,在Java中,可以使用以下代码: File file = new Fil…

    Java 2023年5月5日
    00
  • 深入理解hibernate的三种状态

    深入理解Hibernate的三种状态包括: 瞬时状态(transient state) 持久状态(persistent state) 游离状态(detached state) 瞬时状态(transient state) 当一个新的Java对象被创建时,它处于瞬时状态。Hibernate对该对象并没有关注,在Hibernate Session缓存(first …

    Java 2023年5月19日
    00
  • 什么是类加载器的双亲委派模型的实现原理?

    类加载器的双亲委派模型是Java虚拟机用于加载类的一种规范,它保证在Java中每个类都有且仅有一个类对象,从而保证Java程序的正确性和安全性。本文将详细讲解类加载器双亲委派模型的实现原理。 双亲委派模型的概述 在Java虚拟机中,每个类都有一个唯一的全限定名,类加载器加载一个类时需要先检查父加载器是否已经加载该类。如果父加载器没有加载该类,则它会使用自己的…

    Java 2023年5月10日
    00
  • 完整java开发中JDBC连接数据库代码和步骤

    当进行Java开发中需要连接数据库进行数据操作时,我们可以使用JDBC来完成这个任务。下面详细介绍完整的JDBC连接数据库代码和步骤,这里以MySQL数据库和Oracle数据库为例。 JDBC连接MySQL数据库 步骤一:导入JDBC驱动 要连接MySQL数据库,我们需要使用MySQL JDBC驱动程序。将JDBC驱动程序的JAR文件添加到classpath…

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