【SpringBoot篇】SpringBoot整合Mybatis实战

🎊专栏【SpringBoot】

🍔喜欢的诗句:天行健,君子以自强不息。

🎆音乐分享【如愿】

🎄欢迎并且感谢大家指出小吉的问题🥰

文章目录

  • [🌺Spring Boot和MyBatis的好处](#🌺Spring Boot和MyBatis的好处)
  • 🌺创建工程
    • 🎄报错解决
      • [🎆java: 警告: 源发行版 17 需要目标发行版 17](#🎆java: 警告: 源发行版 17 需要目标发行版 17)
      • 🎆乱码


Spring Boot可以非常方便地集成MyBatis来实现对数据库的访问,从而快速搭建项目持久层。如果你也想利用Spring Boot整合MyBatis,本文将为你详细讲解整合过程。

我们将创建一个Spring Boot工程,引入MyBatis相关依赖,编写Mapper接口与SQL映射文件,直接通过接口方法访问数据库。整合后的MyBatis可以自动参与到Spring事务中,让我们只需要注解和SQL就可以实现DAO层的开发。

跟随本文,你将可以掌握Spring Boot下整合MyBatis的配置方法,并通过一个实际案例感受它的强大魔力。这将为后续项目开发奠定坚实基础。

🌺Spring Boot和MyBatis的好处

整合Spring Boot和MyBatis有以下几个好处:

简化配置:Spring Boot提供了自动配置功能,可以根据类路径上的依赖自动配置数据库连接和MyBatis相关的配置,减少了繁琐的XML配置。只需要进行少量的配置,就可以快速启动和运行应用程序。

快速开发:Spring Boot框架提供了很多开箱即用的功能和特性,如自动装配、自动配置、内嵌服务器等,可以快速构建和部署Web应用程序。MyBatis作为一种简单易用的ORM框架,可以方便地进行数据库操作。整合两者可以提高开发效率,快速实现业务逻辑。

灵活性和可扩展性:Spring Boot和MyBatis都是非侵入式的框架,可以与其他框架或技术无缝集成。通过使用Spring Boot的注解和配置,可以轻松地整合其他持久层框架、消息队列、缓存等技术,满足复杂应用的需求。

易于测试:Spring Boot提供了良好的测试支持,可以轻松编写单元测试和集成测试。MyBatis的Mapper接口和SQL语句都可以进行单元测试,可以方便地验证数据访问的正确性。

生态系统丰富:Spring Boot和MyBatis都拥有庞大的社区支持和活跃的开发者社区,提供了大量的文档、教程和示例,解决问题时可以得到快速的帮助和支持。

综上所述,整合Spring Boot和MyBatis可以简化配置、提高开发效率、增加灵活性和可扩展性,同时还能够享受Spring Boot和MyBatis各自的优势和生态系统的支持。这使得开发人员能够更加专注于业务逻辑的实现,快速构建可靠的Web应用程序。

🌺创建工程

创建一个工程


删除不必要的东西


创建domain包,里面写入Book类

java 复制代码
package com.example.domain;

public class Book {
    private Integer id;
    private String name;
    private String type;
    private String description;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", type='" + type + '\'' +
                ", description='" + description + '\'' +
                '}';
    }
}

写入数据层,创建数据层接口BookDao

在BookDao中写入内容

java 复制代码
package com.example.dao;

import com.example.domain.Book;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface BookDao {
    @Select("select * from abc where id=#{1}")  //修改为自己的表名和id
    public Book getById(Integer id);
}

修改properties文件为yml文件

在yml文件中写入内容

yml 复制代码
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/abc  //修改为自己的数据库名
    username: root
    password: "1234"   //密码是纯数字的要带上双引号

测试接口

java 复制代码
package com.example;

import com.example.dao.BookDao;
import com.example.domain.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Demo7ApplicationTests {

    @Autowired
    private BookDao bookDao;

    @Test
    void testGetById() {
        Book book=bookDao.getById(1);
        System.out.println(book);
    }

}

运行成功

🎄报错解决

🎆java: 警告: 源发行版 17 需要目标发行版 17

这是因为springboot版本太高了

我们降低一下就好了

🎆乱码

运行后发现,之前在yml文件中的中文,运行后变成了乱码

解决方法

通过本文,我们已经掌握了在Spring Boot中集成MyBatis的方法,很好地结合了两者的优势,实现了DAO层的快速开发。在后续的学习中,我们还可以引入MyBatis的多种高级用法,如逆向工程等。

如果大家在整合过程中还有其他问题,例如事务支持、配置优化等,请在评论区随时与我讨论。

相关推荐
亲爱的非洲野猪1 分钟前
Kafka消息积压的多维度解决方案:超越简单扩容的完整策略
java·分布式·中间件·kafka
wfsm4 分钟前
spring事件使用
java·后端·spring
微风粼粼21 分钟前
程序员在线接单
java·jvm·后端·python·eclipse·tomcat·dubbo
缘来是庄25 分钟前
设计模式之中介者模式
java·设计模式·中介者模式
rebel1 小时前
若依框架整合 CXF 实现 WebService 改造流程(后端)
java·后端
代码的余温2 小时前
5种高效解决Maven依赖冲突的方法
java·maven
慕y2742 小时前
Java学习第十六部分——JUnit框架
java·开发语言·学习
paishishaba2 小时前
Maven
java·maven
张人玉3 小时前
C# 常量与变量
java·算法·c#
Java技术小馆3 小时前
GitDiagram如何让你的GitHub项目可视化
java·后端·面试