Spring Boot 3 集成 MyBatis详解

简介: MyBatis是一款开源的持久层框架,它极大地简化了与数据库的交互流程。与类似Hibernate的ORM框架不同,MyBatis更具灵活性,允许开发者直接使用SQL语句与数据库进行交互。Spring Boot和MyBatis分别是两个功能强大的框架,它们的协同使用可以极大地简化数据访问层的开发,提高整体的开发效率。本文将详细介绍在Spring Boot项目中如何集成MyBatis,以实现对数据库的轻松访问和操作。

MyBatis是一款开源的持久层框架,它极大地简化了与数据库的交互流程。与类似Hibernate的ORM框架不同,MyBatis更具灵活性,允许开发者直接使用SQL语句与数据库进行交互。Spring Boot和MyBatis分别是两个功能强大的框架,它们的协同使用可以极大地简化数据访问层的开发,提高整体的开发效率。本文将详细介绍在Spring Boot项目中如何集成MyBatis,以实现对数据库的轻松访问和操作。

springboot3-mybatis.jpg

添加依赖

Spring Boot 3 发布后,Mybatis Starter相对应的mybatis-spring-boot-starter版本为3.x

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

添加配置文件

常用的mybatis配置如下所示:

mybatis:
  mapper-locations: classpath:mybatis/**/*Mapper.xml
  type-aliases-package: cn.xj.xjdoc.**.entity
  configuration:
    map-underscore-to-camel-case: true

参数说明:

  • mybatis.mapper-locations:指定MyBatis的Mapper XML文件的位置。

  • mybatis.type-aliases-package:指定MyBatis的类型别名包,即包含实体类的包路径,方便在xml配置文件中使用实体类时不用写包名。

  • mybatis.configuration.map-underscore-to-camel-case:开启或关闭驼峰命名法的自动映射功能。true表示开启,将数据库字段的下划线风格(例如,user_name)自动映射为Java实体类的驼峰命名风格(例如,userName)。

创建实体类和Mapper接口

创建一个实体类,表示数据库中的表,然后创建一个Mapper接口,用于定义数据库操作的方法。示例:

实体类SysUser:

@Data
public class SysUser {
   
   
    private String userName;
    private String account;
}

Mapper接口SysUserMapper:

@Mapper
public interface SysUserMapper {
   
   
    List<SysUser> listUser();
}

如果我们在启动类上使用了 @MapperScan 注解,就可以批量扫描 MyBatis 的 Mapper 接口所在的包,并将这些接口注册为 MyBatis 的映射器。在这种情况下,Mapper 接口本身就不再需要使用 @Mapper 注解来明确标识其为 MyBatis 的 Mapper 接口了。

@SpringBootApplication
@MapperScan("cn.xj.xjdoc.**.mapper")
public class XjdocApplication {
   
   
    public static void main(String[] args) {
   
   
        SpringApplication.run(XjdocApplication.class, args);
    }

}

创建Mapper 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="cn.xj.xjdoc.system.mapper.SysUserMapper">

    <select id="listUser"  resultType="SysUser">
        select * from sys_user
    </select>
</mapper>

最后,运行你的Spring Boot应用程序,并确保没有错误发生。访问相关端点,测试数据库操作是否正常。

总结

总体而言,Spring Boot集成MyBatis为开发者提供了一套高效而又易于维护的数据库访问方案。通过合理的配置和良好的代码组织,我们能够快速搭建出健壮可靠的数据访问层,为整个应用的开发打下坚实基础。

目录
相关文章
|
5月前
|
数据可视化 Java BI
将 Spring 微服务与 BI 工具集成:最佳实践
本文探讨了 Spring 微服务与商业智能(BI)工具集成的潜力与实践。随着微服务架构和数据分析需求的增长,Spring Boot 和 Spring Cloud 提供了构建可扩展、弹性服务的框架,而 BI 工具则增强了数据可视化与实时分析能力。文章介绍了 Spring 微服务的核心概念、BI 工具在企业中的作用,并深入分析了两者集成带来的优势,如实时数据处理、个性化报告、数据聚合与安全保障。同时,文中还总结了集成过程中的最佳实践,包括事件驱动架构、集中配置管理、数据安全控制、模块化设计与持续优化策略,旨在帮助企业构建高效、智能的数据驱动系统。
314 1
将 Spring 微服务与 BI 工具集成:最佳实践
|
7月前
|
XML 人工智能 Java
Spring Boot集成Aviator实现参数校验
Aviator是一个高性能、轻量级的Java表达式求值引擎,适用于动态表达式计算。其特点包括支持多种运算符、函数调用、正则匹配、自动类型转换及嵌套变量访问,性能优异且依赖小。适用于规则引擎、公式计算和动态脚本控制等场景。本文介绍了如何结合Aviator与AOP实现参数校验,并附有代码示例和仓库链接。
495 0
|
7月前
|
安全 Java 数据库
第16课:Spring Boot中集成 Shiro
第16课:Spring Boot中集成 Shiro
926 0
|
7月前
|
消息中间件 存储 Java
第15课: Spring Boot中集成ActiveMQ
第15课: Spring Boot中集成ActiveMQ
573 0
|
8月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
960 0
|
5月前
|
监控 Cloud Native Java
Spring Integration 企业集成模式技术详解与实践指南
本文档全面介绍 Spring Integration 框架的核心概念、架构设计和实际应用。作为 Spring 生态系统中的企业集成解决方案,Spring Integration 基于著名的 Enterprise Integration Patterns(EIP)提供了轻量级的消息驱动架构。本文将深入探讨其消息通道、端点、过滤器、转换器等核心组件,以及如何构建可靠的企业集成解决方案。
573 0
|
8月前
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1401 1
Spring boot 使用mybatis generator 自动生成代码插件
|
7月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
756 3
|
7月前
|
缓存 JSON 前端开发
第07课:Spring Boot集成Thymeleaf模板引擎
第07课:Spring Boot集成Thymeleaf模板引擎
693 0
第07课:Spring Boot集成Thymeleaf模板引擎