Spring Boot 整合 MyBatis

news/2025/2/19 0:35:42/

🙈作者简介:练习时长两年半的Java up主
🙉个人主页:程序员老茶
🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎
📚系列专栏:Java全栈,计算机系列(火速更新中)
💭 格言:种一棵树最好的时间是十年前,其次是现在
🏡动动小手,点个关注不迷路,感谢宝子们一键三连

目录

  • 课程名:Java
    • 内容/作用:知识点/设计/实验/作业/练习
    • 学习:Java
  • Spring Boot 整合 MyBatis
    • 简介
    • 准备工作
    • 创建项目
    • 添加依赖
    • 配置数据库
    • 创建实体类
    • 创建数据访问接口
    • 创建数据访问映射文件
    • 创建数据访问实现类
    • 创建控制器
    • 运行项目
    • 总结

课程名:Java

内容/作用:知识点/设计/实验/作业/练习

学习:Java

当然可以,以下是使用 Markdown 格式编写的 Spring Boot 整合 MyBatis 的详细教程:

Spring Boot 整合 MyBatis

简介

Spring Boot 是一个用于简化 Spring 应用开发的框架,而 MyBatis 是一个优秀的持久层框架。在本篇文章中,我们将学习如何使用 Spring Boot 整合 MyBatis,以便在项目中实现数据访问和持久化。

准备工作

在开始之前,确保已经安装了以下软件:

  • JDK 1.8 或更高版本
  • Maven 3.2 或更高版本
  • MySQL 数据库

创建项目

首先,我们需要创建一个新的 Spring Boot 项目。可以通过以下方式使用 Maven 命令创建一个基本的 Spring Boot 项目:

mvn archetype:generate -DgroupId=com.example -DartifactId=mybatis-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

这将创建一个名为 mybatis-demo 的项目。

添加依赖

在创建的项目中,打开 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.0.1</version></dependency><!-- MySQL 依赖 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency>
</dependencies>

这些依赖项将用于引入 Spring Boot、MyBatis 和 MySQL 相关的功能。

配置数据库

在项目中,我们需要配置数据库连接。在 src/main/resources 目录下创建一个名为 application.properties 的文件,并添加以下内容:

spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_demo?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Drivermybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.mybatisdemo.entity

在上述配置中,我们指定了 MySQL 数据库的 URL、用户名和密码,以及 MyBatis XML 文件所在的位置和实体类的包名。

创建实体类

在开始编写数据库访问逻辑之前,我们需要先创建实体类来映射数据库中的表。在 src/main/java/com/example/mybatisdemo/entity 目录下创建一个名为 User.java 的文件,并添加以下内容:

package com.example.mybatisdemo.entity;public class User {private Long id;private String name;private Integer age;// Getters and Setters
}

这个实体类包含了三个属性,分别是 id、name 和 age。

创建数据访问接口

接下来,我们需要创建数据访问接口,用于定义数据库操作的方法。在 src/main/java/com/example/mybatisdemo/mapper 目录下创建一个名为 UserMapper.java 的文件,并添加以下内容:

package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.entity.User;import java.util.List;public interface UserMapper {List<User> findAll();User findById(Long id);void insert(User user);void update(User user);void delete(Long id);
}

在这个接口中,我们定义了几个基本的数据库操作方法,例如查询所有用户、根据 ID 查询用户、插入用户、更新用户和删除用户。

创建数据访问映射文件

在 MyBatis 中,我们需要创建一个 XML 文件来定义实际的 SQL 语句。在 src/main/resources/mapper 目录下创建一个名为 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.mybatisdemo.mapper.UserMapper"><resultMap id="BaseResultMap" type="com.example.mybatisdemo.entity.User"><id column="id" property="id" /><result column="name" property="name" /><result column="age" property="age" /></resultMap><select id="findAll" resultMap="BaseResultMap">SELECT * FROM user</select><select id="findById" parameterType="java.lang.Long" resultMap="BaseResultMap">SELECT * FROM user WHERE id = #{id}</select><insert id="insert">INSERT INTO user(name, age) VALUES (#{name}, #{age})</insert><update id="update">UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}</update><delete id="delete">DELETE FROM user WHERE id = #{id}</delete></mapper>

在上述映射文件中,我们使用了 <resultMap> 元素来定义数据库字段和实体类属性的映射关系,然后使用各种 SQL 语句定义了具体的数据库操作。

创建数据访问实现类

接下来,我们需要创建数据访问实现类,用于实际执行数据库操作。在 src/main/java/com/example/mybatisdemo/mapper 目录下创建一个名为 UserMapperImpl.java 的文件,并添加以下内容:

package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.entity.User;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;import java.util.List;@Repository
public class UserMapperImpl implements UserMapper {private final SqlSession sqlSession;public UserMapperImpl(SqlSession sqlSession) {this.sqlSession = sqlSession;}@Overridepublic List<User> findAll() {return sqlSession.selectList("findAll");}@Overridepublic User findById(Long id) {return sqlSession.selectOne("findById", id);}@Overridepublic void insert(User user) {sqlSession.insert("insert", user);}@Overridepublic void update(User user) {sqlSession.update("update", user);}@Overridepublic void delete(Long id) {sqlSession.delete("delete", id);}
}

在这个实现类中,我们使用 SqlSession 来执行实际的 SQL 语句,并实现了之前在接口中定义的各个方法。

创建控制器

最后一步是创建一个控制器来处理 HTTP 请求,并调用数据访问接口。在 src/main/java/com/example/mybatisdemo/controller 目录下创建一个名为 UserController.java 的文件,并添加以下内容:

package com.example.mybatisdemo.controller;import com.example.mybatisdemo.entity.User;
import com.example.mybatisdemo.mapper.UserMapper;
import org.springframework.web.bind.annotation.*;import java.util.List;@RestController
@RequestMapping("/users")
public class UserController {private final UserMapper userMapper;public UserController(UserMapper userMapper) {this.userMapper = userMapper;}@GetMappingpublic List<User> getAllUsers() {return userMapper.findAll();}@GetMapping("/{id}")public User getUserById(@PathVariable("id") Long id) {return userMapper.findById(id);}@PostMappingpublic void addUser(@RequestBody User user) {userMapper.insert(user);}@PutMapping("/{id}")public void updateUser(@PathVariable("id") Long id, @RequestBody User user) {user.setId(id);userMapper.update(user);}@DeleteMapping("/{id}")public void deleteUser(@PathVariable("id") Long id) {userMapper.delete(id);}
}

在这个控制器中,我们使用 @RestController 注解将其标记为一个 RESTful Web 服务,并使用各种 HTTP 请求方法来处理用户的 CRUD 操作。

运行项目

现在,我们已经完成了整个项目的编写。可以使用以下命令来启动 Spring Boot 应用程序:

mvn spring-boot:run

然后,可以使用 Postman 或浏览器访问 http://localhost:8080/users 来测试我们的 API,以及对数据库进行增删改查操作。

至此,我们成功地使用 Spring Boot 整合 MyBatis 完成了一个简单的数据访问项目。

总结

在本篇文章中,我们详细介绍了如何使用 Spring Boot 整合 MyBatis,以及如何进行数据库访问和持久化操作。我们从创建项目、添加依赖、配置数据库,到编写实体类、映射文件、数据访问接口和实现类,最后创建控制器来处理 API 请求,完成了一个简单的示例项目。通过学习本文,希望你能够熟悉 Spring Boot 和 MyBatis 的使用,能够在实际项目中应用这些知识。

每日一问:
请简述一下关键词全栈。
全栈是指一种开发工程师的角色或技能集,具备设计、开发、部署和维护全流程的能力。关键词全栈可以涉及包括前端、后端、数据库、服务器等各种不同领域。全栈开发工程师需要具备多种技能,包括但不限于编程语言、数据库管理、网络安全、数据结构和算法等。具体来说,前端方面需要熟悉 HTML、CSS、JavaScript等技术;后端方面需要熟悉多种编程语言,如Java、Python、Ruby等以及熟练使用数据库管理系统;服务器方面需要掌握Linux系统的常用命令和操作等。全栈开发工程师不仅要具备技术方面的能力,还需要具备良好的沟通和协作能力,能够在团队中负责全栈开发流程的各个环节。

往期专栏
Java全栈开发
数据结构与算法
计算机组成原理
操作系统
数据库系统
物联网控制原理与技术

http://www.ppmy.cn/news/1100644.html

相关文章

万字C语言之分支语句和循环语句

前言&#xff1a; &#x1f4d5;作者简介&#xff1a;热爱编程的小七&#xff0c;致力于C、Java、Python等多编程语言&#xff0c;热爱编程和长板的运动少年&#xff01; &#x1f4d8;相关专栏Java基础语法&#xff0c;JavaEE初阶&#xff0c;数据库&#xff0c;数据结构和算法…

Android 13.0 Launcher3定制之双层改单层(去掉抽屉式三)

1.概述 在13.0的系统产品开发中,对于在Launcher3中的抽屉模式中,系统默认的就是抽屉单层模式,但是在很多产品中需要默认为 单层模式,就是要求去掉双层抽屉模式,接下来看下如何继续实现去掉抽屉双层模式,来变成单层模式第三节 2.Launcher3定制之双层改单层(去掉抽屉式三)…

泛型的使用

I. 什么是泛型&#xff1f; A. 泛型的定义 泛型&#xff08;Generics&#xff09;是一种允许你在编写类、接口和方法时使用类型参数的机制&#xff0c;以提高代码的灵活性和重用性。泛型允许你编写通用的代码&#xff0c;可以在不同的数据类型上工作&#xff0c;而无需为每种…

微信小程序开发教学系列(2)- 抖音小程序开发基础

2.1 抖音小程序的基本组成部分 抖音小程序的目录结构非常简单&#xff0c;主要包含以下几个核心文件和文件夹&#xff1a; app.json 文件&#xff1a;用于配置小程序的全局配置&#xff0c;包括窗口样式、页面路径、网络请求设置等等。pages 文件夹&#xff1a;用于存放所有的…

安装React脚手架

在安装React脚手架之前&#xff0c;你需要决定使用哪个包管理工具。这里我们选择使用npm。运行下面的命令来安装React脚手架&#xff1a; npm install -g create-react-app这个命令会在全局安装React脚手架工具create-react-app。 现在&#xff0c;你已经准备好创建一个新的R…

[MySQL]查看数据库大小

查看库大小 例如&#xff1a;查看当前MySQL中数据总量超过2GB的库&#xff1a; select table_schema as 数据库,table_rows as 记录数,data_size as 数据容量(GB),index_size as 索引容量(MB) from (selecttable_schema,sum(table_rows) as table_rows,sum(truncate(data_leng…

Python条件语句的使用方法和注意事项

摘要&#xff1a; 条件语句是在编程中非常重要的一部分&#xff0c;它允许程序在满足特定条件时执行不同的代码块。Python提供了强大且易于理解的条件语句语法。本文将介绍Python条件语句的使用方法&#xff0c;包括if语句和相关的注意事项&#xff0c;并提供源代码示例。希望通…

web 网页开发学习 之 vsc 的快捷方式便捷使用

我们想在vsc进行网页的开发如果能够掌握一些快捷键的技巧&#xff0c;那么对我们开发的帮助就会很大