SpringBoot图文并茂详解如何引入mybatis与连接Mysql数据库

下面详细讲解如何在Spring Boot项目中引入MyBatis并连接MySQL数据库。

一、前置条件

  • Java环境(Java 8及以上版本)
  • Maven环境(Maven 3及以上版本)
  • MySQL数据库

二、引入依赖

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

<dependencies>
    <!-- Spring Boot依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- MyBatis依赖 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>

    <!-- MySQL驱动依赖 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
</dependencies>

其中,spring-boot-starter-web是Spring Boot项目的基础依赖,mybatis-spring-boot-starter是MyBatis的Spring Boot支持依赖,mysql-connector-java是MySQL的JDBC驱动。

三、配置数据源

application.properties文件中配置MySQL数据库连接的相关参数:

# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

其中,spring.datasource.url是数据库连接地址,spring.datasource.usernamespring.datasource.password分别是连接数据库的用户名和密码,spring.datasource.driver-class-name是MySQL的JDBC驱动类。

四、创建实体类和Mapper

在项目的src/main/java目录下创建实体类User.java和Mapper接口UserMapper.java

// User.java
public class User {
    private Integer id;
    private String name;
    private Integer age;
    // 省略getter和setter方法
}

// UserMapper.java
@Mapper
public interface UserMapper {
    List<User> getAllUsers();
    void insertUser(User user);
}

其中,User.java是用户实体类,UserMapper.java是用户Mapper接口。注意,UserMapper.java要使用@Mapper注解。

五、编写Mapper XML文件

在项目的src/main/resources目录下创建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.mapper.UserMapper">
    <select id="getAllUsers" resultType="com.example.entity.User">
        select id, name, age from user
    </select>

    <insert id="insertUser">
        insert into user(id, name, age) values(#{id}, #{name}, #{age})
    </insert>
</mapper>

其中,<select>标签用于查询所有用户,<insert>标签用于插入一个新的用户。

六、编写Controller

在项目的src/main/java目录下创建UserController.java文件:

@RestController
public class UserController {
    @Autowired
    private UserMapper userMapper;

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

    @PostMapping("/users")
    public String insertUser(@RequestBody User user) {
        userMapper.insertUser(user);
        return "success";
    }
}

其中,@RestController注解表示该类是一个REST风格的控制器,@Autowired注解用于注入UserMapper实例,@GetMapping注解用于处理HTTP GET请求,@PostMapping注解用于处理HTTP POST请求。

七、示例1 查询所有用户

启动项目后,在浏览器中访问http://localhost:8080/users即可查询所有用户。

八、示例2 添加新用户

使用Postman等工具向http://localhost:8080/users发送POST请求,请求体为JSON格式的用户数据,即可完成添加新用户的操作。

至此,完整的在Spring Boot项目中引入MyBatis并连接MySQL数据库的攻略就讲解完毕了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot图文并茂详解如何引入mybatis与连接Mysql数据库 - Python技术站

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

相关文章

  • Java计算程序代码执行时间的方法小结

    Java计算程序代码执行时间的方法小结 简介 在Java中,我们经常需要计算程序代码的执行时间来检测优化程序的性能。本文将会介绍Java中计算代码执行时间的方法。 方法一:使用System.currentTimeMillis() 我们可以使用System.currentTimeMillis()方法来计算代码执行的时间差。这个方法返回当前时间的毫秒数。我们可以…

    Java 2023年5月20日
    00
  • SpringBoot2.x中management.security.enabled=false无效的解决

    问题描述: 在使用 Spring Boot 2.x 项目时,当添加了 Actuator 组件后,如果需要关闭 Actuator 组件的安全认证功能,通过在配置文件中加入 management.security.enabled=false 进行了配置,但是访问 Actuator 的端点时,仍然需要输入用户名和密码进行认证。 解决方法: Spring Boot …

    Java 2023年5月20日
    00
  • 类似Object监视器方法的Condition接口(详解)

    下面我会详细讲解“类似Object监视器方法的Condition接口(详解)”的完整攻略。 Background 在Java中,有时我们需要等待一些特定条件的发生,才能继续执行接下来的操作。此时,我们可以使用Object的监视器方法,或者使用JDK1.5出现的Lock机制,但是它们都存在一些问题,比如在多线程环境下容易出现死锁等问题。为解决这些问题,Java…

    Java 2023年5月26日
    00
  • IDEA创建Java Web项目不能及时刷新HTML或JSP页面问题

    当使用IntelliJ IDEA创建Java Web项目并且编写HTML或JSP页面时,可能会遇到页面不能及时刷新的问题,这是由于IDEA默认采用了缓存机制导致的。为了解决这个问题,可以执行以下步骤: 1. 关闭缓存 通过在IDEA的Editor部分中找到Editor > General > Editor Tabs选项,并勾选“Mark modi…

    Java 2023年6月15日
    00
  • 深入理解Java中Filter的作用种类及应用场景

    深入理解Java中Filter的作用种类及应用场景 什么是Filter Filter是Java Servlet规范中的一部分,它代表了一个用于转换HTTP请求和响应的组件。Filter可以拦截Servlet执行前的请求,进行一系列操作,例如对编码进行过滤、对参数进行处理、对请求进行身份验证等。Filter还可以在Servlet执行后进行响应拦截,将一些额外的…

    Java 2023年6月15日
    00
  • Java实现上传Excel文件并导入数据库

    首先,要实现上传Excel文件并导入数据库,需要使用Java语言中的POI库来进行Excel文件的解析,同时需要使用数据库连接池实现连接管理。下面是详细的实现步骤。 1. 上传Excel文件 首先,需要在页面上实现上传文件的功能,可以使用form表单和input标签的type为file的属性来实现: <form action="upload&…

    Java 2023年5月20日
    00
  • Java实现深度搜索DFS算法详解

    Java实现深度搜索DFS算法详解 DFS简介 深度搜索(Depth First Search, DFS)是一种用于遍历或搜索树或图的算法。其基本思想是从根节点出发,尽可能深的遍历每一个节点,直到没有下一个未访问的节点,然后回溯到最近的未访问节点,并继续访问其它节点。 DFS算法流程 DFS算法的流程如下: 将起始节点添加到栈中 判断栈是否为空,如果为空则退…

    Java 2023年5月19日
    00
  • Java将Object转换为数组的代码

    要将Java中的Object类型转换成数组,可以使用Java的反射机制来实现。具体的步骤如下: 1. 获取Object的Class对象 通过Object的getClass()方法获取一个Class对象,然后调用Class类的getComponentType()方法获取数组元素的类型,最后调用java.lang.reflect.Array的newInstanc…

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