Springboot整合mybatis的步骤

下面是我为您准备的完整攻略。

Spring Boot整合Mybatis的步骤

1. 添加Mybatis和Mybatis-spring-boot-starter依赖

在pom.xml文件中,添加如下的Mybatis和Mybatis-spring-boot-starter依赖:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
</dependency>

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

2. 创建数据源配置

在application.properties或application.yml中配置数据源:

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

3. 创建Mybatis配置

创建mybatis-config.xml文件,配置Mybatis,在其中配置Mapper扫描路径:

<!-- mybatis-config.xml文件 -->
<configuration>
    <typeAliases>
        <!-- 在这里配置要扫描的实体类的包路径 -->
        <package name="com.example.entity" />
    </typeAliases>
    <mappers>
        <!-- 在这里配置Mapper文件所在的包路径 -->
        <mapper class="com.example.mapper.UserMapper" />
    </mappers>
</configuration>

4. 创建Mapper

创建Mapper接口,定义SQL映射:

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM user WHERE id = #{id}")
    User findById(@Param("id") Long id);
}

5. 创建实体类

创建实体类,对应数据库的表:

public class User {
    private Long id;
    private String name;
    private String gender;
    // getter和setter方法省略
}

6. 创建Service

创建Service层,实现业务逻辑:

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

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

7. 创建Controller

创建Controller层,接收请求并调用Service:

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

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

8. 运行应用程序

运行应用程序,访问http://localhost:8080/user/1,即可看到id为1的用户信息。

示例说明

示例1

下面是一个简单的示例,展示如何使用Mybatis访问数据库。

  1. 创建一个Spring Boot应用程序。

  2. 添加Mybatis和Mybatis-spring-boot-starter依赖。

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
</dependency>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency>
  1. 创建数据源配置。
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test_db?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver
  1. 创建Mapper。
@Mapper
public interface UserMapper {
    @Insert("INSERT INTO user(name, gender) VALUES(#{name}, #{gender})")
    void addUser(User user);

    @Select("SELECT * FROM user WHERE id = #{id}")
    User findById(Long id);
}
  1. 创建实体类。
public class User {
    private Long id;
    private String name;
    private String gender;
    // getter和setter方法省略
}
  1. 创建Service。
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public void addUser(User user) {
        userMapper.addUser(user);
    }

    public User findById(Long id) {
        return userMapper.findById(id);
    }
}
  1. 创建Controller。
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/")
    public void addUser(@RequestBody User user) {
        userService.addUser(user);
    }

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

示例2

下面是另一个示例,展示如何使用Mybatis实现多表关联查询。

  1. 创建一个Spring Boot应用程序。

  2. 添加Mybatis和Mybatis-spring-boot-starter依赖。

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
</dependency>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency>
  1. 创建数据源配置。
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test_db?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver
  1. 创建Mapper。
@Mapper
public interface OrderMapper {
    @Select("SELECT o.*, u.name AS user_name, p.name AS product_name, p.price FROM `order` o LEFT JOIN user u ON o.user_id = u.id LEFT JOIN product p ON o.product_id = p.id WHERE o.id = #{id}")
    OrderVO findById(@Param("id") Long id);
}
  1. 创建实体类。
public class Order {
    private Long id;
    private Long userId;
    private Long productId;
    // getter和setter方法省略
}
public class User {
    private Long id;
    private String name;
    // getter和setter方法省略
}
public class Product {
    private Long id;
    private String name;
    private double price;
    // getter和setter方法省略
}
public class OrderVO {
    private Long id;
    private Long userId;
    private String userName;
    private Long productId;
    private String productName;
    private double productPrice;
    // getter和setter方法省略
}
  1. 创建Service。
@Service
public class OrderService {
    @Autowired
    private OrderMapper orderMapper;

    public OrderVO findById(Long id) {
        return orderMapper.findById(id);
    }
}
  1. 创建Controller。
@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    private OrderService orderService;

    @GetMapping("/{id}")
    public OrderVO findById(@PathVariable("id") Long id) {
        return orderService.findById(id);
    }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot整合mybatis的步骤 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • 关于java后端的详解

    关于Java后端的详解 Java后端是现代软件开发中最常用的后端技术。它使用 Java 编程语言创建服务器端应用程序。Java后端提供了高性能、可扩展性和安全性。 对于Java后端开发,我们需要掌握以下方面: Java语言基础知识 为了进行Java后端开发,需要学习Java语言基础知识,例如类、对象、继承、多态等概念,同时理解Java的面向对象编程思想。 数…

    Java 2023年5月23日
    00
  • 详解spring面向切面aop拦截器

    下面是我准备的详解Spring面向切面AOP拦截器的攻略。 什么是AOP AOP(Aspect Oriented Programming)是一种编程思想,通过在不影响主业务逻辑的情况下,往程序中添加一些辅助功能和处理逻辑。AOP思想的核心是“切面”(Aspect),切面可以看作是一个包含了若干通用处理逻辑的类,这些通用处理逻辑可以在不同的拦截点上进行重复利用…

    Java 2023年5月31日
    00
  • 汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作(推荐)

    汇编语言 XOR 指令 1. XOR 指令简介 XOR(exclusive or)指令是一种按位异或指令,用于对两个操作数进行逻辑(按位)异或操作。XOR 操作的结果是对两个操作数的每一位进行异或运算,若两个操作数的对应位不同,则结果对应位为 1,否则对应位为 0。 在汇编语言中,XOR 指令是一种常见的逻辑操作指令,可以用于处理数据加密、位运算、数据清零、…

    Java 2023年5月26日
    00
  • response.sendRedirect()实现重定向(页面跳转)

    首先,我会给出response.sendRedirect()方法的基础知识介绍。然后会详细讲解这个方法的实现流程和使用场景,最后会给出两个示例说明。 response.sendRedirect()方法 response.sendRedirect()方法是Java Servlet API的一部分,它实现了在服务器端的页面跳转,也叫做重定向。这个方法以url为参…

    Java 2023年6月16日
    00
  • 详解SpringMVC重定向传参数的实现

    接下来我将为你讲解“详解SpringMVC重定向传参数的实现”的完整攻略。 标题 介绍 在SpringMVC中,有时候需要在重定向跳转的时候把一些参数传递过去,以便在下一个请求中使用。本文将详细讲解如何在SpringMVC中实现重定向传参数。 实现步骤 第一步:使用RedirectAttributes添加Flash属性 SpringMVC提供了Redirec…

    Java 2023年6月15日
    00
  • springboot(thymeleaf)中th:field和th:value的区别及说明

    在 SpringBoot 中使用 Thymeleaf 模版引擎时,常会使用 th:field 和 th:value,这两个指令都用于绑定表单数据和模型数据。 th:value 指令 th:value 指令用于将表单元素的 value 值设置为指定的表达式的值。 示例: <form> <input type="text" …

    Java 2023年6月15日
    00
  • MyBatis实现插入大量数据方法详解

    MyBatis实现插入大量数据方法详解 介绍 在实际开发中,可能会遇到需要插入大量数据的情况。如果使用MyBatis默认的SQL语句,会导致多次数据库交互,效率低下。因此,本篇文章将介绍MyBatis如何实现插入大量数据的方法。 使用batch插入 MyBatis提供了批量插入数据的功能,即batch插入。下面是示例代码: <insert id=&qu…

    Java 2023年5月20日
    00
  • Maven的使用

    Maven 1.下载并配置 下载地址:https://maven.apache.org/download.cgi?. 配置环境变量 新建系统变量,变量名为MAVEN_HOME,变量值为 maven 的安装路径 编辑名为Path的系统变量,然后点击新建,输入 %MAVEN_HOME%\bin 配置完成,测试一下 ==> win+r输入cmd,在命令行输入…

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