SpringBoot开发之整合Mybatis详解

 更新时间:2023年09月01日 09:43:02   作者:韩_师兄  
这篇文章主要介绍了SpringBoot开发之整合Mybatis详解,MyBatis是一个半自动的ORM框架,它允许我们通过编写SQL语句来操作数据库,使用MyBatis,我们可以通过定义映射文件(XML文件)或使用注解的方式将Java对象与数据库表进行映射,需要的朋友可以参考下

1 整合Mybatis

Spring Boot官方的依赖包:

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

1 配置模式

  • 全局配置文件
  • SqlSessionFactory: 自动配置好了
  • SqlSession:自动配置了 SqlSessionTemplate 组合了SqlSession
  • @Import(AutoConfiguredMapperScannerRegistrar.class)
  • Mapper层: 只要写的操作MyBatis的接口带着了 @Mapper 就会被自动扫描进来
//  MyBatis配置项绑定类。
@EnableConfigurationProperties(MybatisProperties.class)
@AutoConfigureAfter({ DataSourceAutoConfiguration.class, MybatisLanguageDriverAutoConfiguration.class })
public class MybatisAutoConfiguration{}
@ConfigurationProperties(prefix = "mybatis")
public class MybatisProperties

配置修改mybatis:

# 配置mybatis规则
mybatis:
  config-location: classpath:mybatis/mybatis-config.xml  # 全局配置文件位置
  mapper-locations: classpath:mybatis/mapper/*.xml  # sql映射文件位置
# 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="com.cf.admin.mapper.AccountMapper">
<!--    public Account getAcct(Long id); -->
    <select id="getAcct" resultType="com.cf.admin.bean.Account">
        select * from  t_user where  id=#{id}
    </select>
</mapper>

配置 private Configuration configuration; mybatis.configuration下面的所有,就是相当于改mybatis全局配置文件中的值

# 配置mybatis规则
mybatis:
#  config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath:mybatis/mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true
# 可以不写全局;配置文件,所有全局配置文件的配置都放在configuration配置项中即可

使用流程:

  • 导入mybatis官方starter
  • 编写mapper接口。标准@Mapper注解
  • 编写sql映射文件并绑定mapper接口
  • 在application.yaml中指定Mapper配置文件的位置,以及指定全局配置文件的信息

2 注解模式

@Mapper
public interface CityMapper {
    @Select("select * from t_user where id=#{id}")
    public User getById(Long id);
}

3 混合模式

@Mapper
public interface CityMapper {
    @Select("select * from t_user where id=#{id}")
    public User getById(Long id);
}

使用流程:

  • 引入mybatis-starter
  • 配置application.yaml中,指定mapper-location位置即可
  • 编写Mapper接口并标注@Mapper注解
  • 简单方法直接注解方式 (如模式二)
  • 复杂方法编写mapper.xml进行绑定映射
  • @MapperScan(“com.cf.admin.mapper”) 简化,其他的接口就可以不用标注@Mapper注解

2 整合MyBatis-Plus

 概述

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

推荐安装 MybatisX 插件

使用

引入依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>

说明:

  • MybatisPlusAutoConfiguration 配置类,MybatisPlusProperties 配置项绑定。
  • SqlSessionFactory 自动配置好。底层是容器中默认的数据源
  • mapperLocations 自动配置好。有默认值。
    • **classpath*:/mapper/**/*.xml;任意包的类路径下的所有mapper文件夹下任意路径下的所有xml都是sql映射文件。 **
  • 容器中也自动配置好了 SqlSessionTemplate
  • @Mapper 标注的接口也会被自动扫描 也可直接 @MapperScan(“com.cf.admin.mapper”) 批量扫描就行

优点:

让Mapper继承 BaseMapper 就可以拥有简单crud的能力

到此这篇关于SpringBoot开发之整合Mybatis详解的文章就介绍到这了,更多相关SpringBoot整合Mybatis内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java Stream 流中 Collectors.toMap 的用法详解

    Java Stream 流中 Collectors.toMap 的用法详解

    这篇文章主要介绍了Stream 流中 Collectors.toMap 的用法,Collectors.toMap()方法是把List转Map的操作,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • Java编程实现服务器端支持断点续传的方法(可支持快车、迅雷)

    Java编程实现服务器端支持断点续传的方法(可支持快车、迅雷)

    这篇文章主要介绍了Java编程实现服务器端支持断点续传的方法,涉及Java文件传输的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • 基于java构造方法Vevtor添加元素源码分析

    基于java构造方法Vevtor添加元素源码分析

    这篇文章主要介绍了基于java构造方法中对Vevtor添加元素的源码分析,有需要的朋友可以借鉴参考下,希望可以对大家有所帮助,祝大家早日升职加薪
    2021-09-09
  • 浅析java中遍历map的两种方式

    浅析java中遍历map的两种方式

    本篇文章主要分享了java中遍历map的两种方式,代码简洁明了,有需要的朋友可以参考下,希望会有所帮助
    2016-12-12
  • 关于Struts2的类型转换详解

    关于Struts2的类型转换详解

    本篇文章,小编将为大家介绍关于Struts2的类型转换详解,有需要的朋友可以参考一下
    2013-04-04
  • Spring计时器stopwatch使用详解

    Spring计时器stopwatch使用详解

    这篇文章主要介绍了Spring计时器stopwatch使用详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 了解Java线程池执行原理

    了解Java线程池执行原理

    那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。下面我们来详细了解一下吧
    2019-05-05
  • mybatis中映射文件include标签的应用

    mybatis中映射文件include标签的应用

    这篇文章主要介绍了mybatis中映射文件include标签的应用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java NIO 文件通道 FileChannel 用法及原理

    Java NIO 文件通道 FileChannel 用法及原理

    这篇文章主要介绍了Java NIO 文件通道 FileChannel 用法和原理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Spring Cloud Nacos配置管理方案

    Spring Cloud Nacos配置管理方案

    Nacos是SpringCloud中用于服务注册与发现和配置管理的组件,提供多种健康检查机制和历史版本管理,Nacos支持单机、集群和多集群模式,通过OpenAPI和多种语言客户端进行接入,感兴趣的朋友一起看看吧
    2025-01-01

最新评论