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中使用zxing批量生成二维码立牌

    下面就详细讲解一下“java中使用zxing批量生成二维码立牌”的完整攻略。 简介 zxing是一个开源的、支持多种编程语言的二维码生成和识别库。我们可以借助zxing库,使用java语言批量生成带有文字的二维码立牌。 准备工作 下载zxing库:我们可以从zxing的官方网站或者Maven中央仓库中获取zxing库。 创建Java工程:我们可以选择使用Ec…

    Java 2023年5月20日
    00
  • JSP的request对象实例详解

    下面是关于“JSP的request对象实例详解”的完整攻略: 一、request对象简介 在JSP中,request对象代表了客户端向服务器发起的请求,并且提供了一系列方法来获取请求中的信息。通常情况下,我们会使用request对象来处理表单提交、处理URL参数、获取HTTP头信息等操作。 二、request对象的常用方法 1. 获取用户提交的表单数据 当用…

    Java 2023年6月15日
    00
  • Java线程死锁代码详解

    这里我给你提供一份“Java线程死锁代码详解”的攻略,希望能对你有所帮助。 背景介绍 线程死锁在多线程环境下是非常常见的情况,而解决线程死锁也非常困难,因此需要我们对线程死锁有一个深入的了解。本文将详细讲解Java线程死锁的原因、示例以及如何解决死锁。 什么是线程死锁? 当两个或更多的线程互相持有对方所需要的资源,同时等待对方释放资源,就会出现线程死锁。可以…

    Java 2023年5月24日
    00
  • 详解Java读取本地文件并显示在JSP文件中

    下面是详解Java读取本地文件并显示在JSP文件中的完整攻略。 1. 确定需求和环境 首先我们需要明确需求和环境: 需求:- 从本地读取一个文本文件;- 将文件内容显示在JSP页面中。 环境:- Java:JDK 8+- Web容器:Tomcat 8+- 文本文件:任意文本文件,本文选择test.txt文件作为示例 2. 准备文件和工程 首先我们准备一个文本…

    Java 2023年5月20日
    00
  • JavaSpringBoot报错“IllegalStateException”的原因和处理方法

    原因 “IllegalStateException” 错误通常是以下原因引起的: 应用程序状态不正确:如果您的应用程序状态不正确,则可能会出现此错误。在这种情况下,您需要检查您的应用程序状态并确保它们正确。 应用程序配置不正确:如果您的应用程序配置不正确,则可能会出现此错误。在这种情况下,您需要检查您的应用程序配置并确保它们正确。 解决办法 以下是解决 “I…

    Java 2023年5月4日
    00
  • 一文带你深入剖析Java线程池的前世今生

    一文带你深入剖析Java线程池的前世今生 前言 在多线程编程中,合理使用线程池可以非常有效地提高系统的性能和稳定性。Java线程池作为Java提供的重要多线程协调工具,在实际开发中备受青睐。本文将从Java线程池的定义、类型、工作原理、使用场景以及常见误区等方面进行深入分析和讲解,帮助Java初学者和进阶者更好地掌握线程池的使用。 定义 Java线程池本质上…

    Java 2023年5月24日
    00
  • Java jwt使用公钥字符串验证解析token锁方法详解

    下面是详细讲解“Java jwt使用公钥字符串验证解析token锁方法详解”的完整攻略。 一、什么是JWT JWT是一种开放的标准(RFC 7519),定义了一种简洁的、自包含的方式用于在各方之间传递信息。该信息可以被验证和信任,因为它是经过数字签名的。JWT可以使用对称加密和非对称加密两种方式进行签名,其中非对称加密使用公钥和私钥进行加密和解密。 JWT包…

    Java 2023年6月3日
    00
  • java+io+swing实现学生信息管理系统

    Java+IO+Swing实现学生信息管理系统 学生信息管理系统是一款常见的管理工具,它可以帮助学校、老师或管理员轻松地管理学生的信息。本篇攻略将会使用Java语言结合IO和Swing技术来实现学生信息管理系统。 1. 项目搭建 首先打开你喜欢的IDE,选择新建Java项目,并添加Swing库。 然后新建一个Main类,它将作为程序的入口点。接下来,创建一个…

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