• Spring Boot 整合 MyBatis


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

    课程名: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
    
    • 1

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

    添加依赖

    在创建的项目中,打开 pom.xml 文件,并添加以下依赖项:

    <dependencies>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
    
        
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>2.0.1version>
        dependency>
    
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.26version>
        dependency>
    dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    这些依赖项将用于引入 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.Driver
    
    mybatis.mapper-locations=classpath:mapper/*.xml
    mybatis.type-aliases-package=com.example.mybatisdemo.entity
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在上述配置中,我们指定了 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
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    这个实体类包含了三个属性,分别是 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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

    创建数据访问映射文件

    在 MyBatis 中,我们需要创建一个 XML 文件来定义实际的 SQL 语句。在 src/main/resources/mapper 目录下创建一个名为 UserMapper.xml 的文件,并添加以下内容:

    
    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    在上述映射文件中,我们使用了 元素来定义数据库字段和实体类属性的映射关系,然后使用各种 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;
        }
    
        @Override
        public List<User> findAll() {
            return sqlSession.selectList("findAll");
        }
    
        @Override
        public User findById(Long id) {
            return sqlSession.selectOne("findById", id);
        }
    
        @Override
        public void insert(User user) {
            sqlSession.insert("insert", user);
        }
    
        @Override
        public void update(User user) {
            sqlSession.update("update", user);
        }
    
        @Override
        public void delete(Long id) {
            sqlSession.delete("delete", id);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    在这个实现类中,我们使用 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;
        }
    
        @GetMapping
        public List<User> getAllUsers() {
            return userMapper.findAll();
        }
    
        @GetMapping("/{id}")
        public User getUserById(@PathVariable("id") Long id) {
            return userMapper.findById(id);
        }
    
        @PostMapping
        public 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);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

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

    运行项目

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

    mvn spring-boot:run
    
    • 1

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

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

    总结

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

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

    往期专栏
    Java全栈开发
    数据结构与算法
    计算机组成原理
    操作系统
    数据库系统
    物联网控制原理与技术
  • 相关阅读:
    嵌入式开发:注释C代码的10个技巧
    Android Version、MinSDK(API)和https的对应关系
    传奇列表获取失败与登录器太老怎么解决
    Python学习常见问题及其解决方案(1)
    Java基础:设计模式之抽象工厂模式
    爬虫基础—代理的基本原理
    Cadence导入IBIS模型用于仿真
    SpringBoot 05 静态资源导入、热部署
    Next.js和sharp实现占位图片生成工具
    分享4个MSVCP100.dll丢失的解决方法
  • 原文地址:https://blog.csdn.net/qq_53431712/article/details/132777262