spring-boot集成mybatis真的很简单吗?

这篇具有很好参考价值的文章主要介绍了spring-boot集成mybatis真的很简单吗?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在日常的后端开发中,使用mybatis作为DAO层的持久框架已经是惯例。但很多时候都是在别人搭好的框架中进行开发,对怎么搭建环境是一知半解,今天就来实践下。

一、集成分哪些步骤

来看下集成mybatis需要哪些步骤,

1、确定环境及依赖

2、配置文件;

3、测试

二、环境及依赖

这里,基于springboot集成mybatis。先看下具体的版本,

springboot:2.3.3.RELEASE

mybatis-spring-boot-starter:2.3.0

mysql驱动:8.0.32

下面具体看下这些依赖,spring-boot自不用说,就是在这个环境下的;

mybatis-spring-boot-starter

mybatis-spring-boot-starter是针对mybatis和spring-boot集成而开发的一个依赖,里边包含了所需的依赖,方便集成,其实spring官方还有很多这样的starter,例,

spring-boot集成mybatis真的很简单吗?

可以看到官方提供了很多starter供开发者使用。怎么没看到mybatis-spring-boot-starter呐,不急,它不是官方提供的,而是mybatis官方提供的,多提一句,对于starter的命名官方也给出了这样的建议,官方提供的spring-boot-starter-*,而第三方的则是thirdpartyproject-spring-boot-starter,

spring-boot集成mybatis真的很简单吗?

详见:https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/reference/pdf/spring-boot-reference.pdf

你想创建自己的starter吗,可以在文末“推荐阅读”里找到相关的博文。

mysql驱动也不用说,要使用程序访问mysql,自然少不了mysql的驱动。

用一张图来描述下,springboot下集成mybatis的一个逻辑流程,

spring-boot集成mybatis真的很简单吗?

我们都知道,可以在程序中直接使用JDBC访问mysql,也可以使用mybatis访问mysql,在spring的环境下则通过mybatis-spring访问mysql。从图中可以看到访问路径更长了,那集成mybatis的意义是什么,答案是使用更简单,还记得刚学习的时候使用JDBC的噩梦吗?

看下,引入的依赖,我这里使用父子项目,采用在父pom中管理依赖,子pom使用的原则。

父pom.xml

           <!--mybatis-spring-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.3.0</version>
            </dependency>
            <!--mysql的驱动-->
            <dependency>
                <groupId>com.mysql</groupId>
                <artifactId>mysql-connector-j</artifactId>
                <version>8.0.32</version>
            </dependency>

子pom.xml这里不再列出,看下最终的依赖,

spring-boot集成mybatis真的很简单吗?

可以看到mybatis-spring-boot-starter中已经包含了mybatis、mybatis-spring等依赖,mybatis依赖不用单独引了。换句话说,在spring-boot中集成mybatis且连接mysql使用下面两个依赖即可,

1、mybatis-spring-boot-starter

2、mysql-connector-j

访问其他数据库换掉驱动即可。

三、配置文件

我们知道使用mybaits的目的是访问数据库,而且mybatis访问数据库使用的是JDBC驱动的方式,那么配置的话,可以分为两块,

1、mybatis配置

2、JDBC配置文件

3.1、mybatis配置

使用过mybatis的都了解,mybatis是基于xml的,使用xml来写sql实现数据库的访问,java是面向对象的,所以要操作文件,或者说调用xml中的方法需要一个对象,这个对象就是Mapper接口,所以,mybatis的配置文件有两块,一个是配置xml,另一个就是告诉mybatis将xml映射到哪些接口中。

application.yml中配置mybatis的xml

mybatis:
  mapper-locations: classpath*:mapper/*.xml

这些xml文件在resource文件夹下,

spring-boot集成mybatis真的很简单吗?

接下来就是mapper接口,使用@MapperScan注解,在启动类上配置扫描的包

spring-boot集成mybatis真的很简单吗?

这样就完成了mybatis的配置。接下来就是JDBC的配置。

3.2、JDBC配置文件

结合之前使用JDBC的经验,我们知道要创建一个JDBC连接需要知道数据库驱动名,连接URL、用户名、密码,这些就可以了。这里也是配置这些,在application.yml中进行配置,

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&autoReconnect=true&allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
    username: root
    password: 123456

这样JDBC的配置就可以了。上边的具体配置需要自行修改成自己的。

有小伙伴说不对,我的配置里还有多了一个,

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&autoReconnect=true&allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource

没错,多的配置是datasource的类型,这里可以不配,默认是com.zaxxer.hikari.HikariDataSource,当然了也可以指定,比如使用c3p0、druid等第三方数据库连接池,这都是可以的(前提引入相关依赖)。不配置默认使用下面三个中的一个,有兴趣的可以看下org.springframework.boot.jdbc.DataSourceBuilder类的实现,

spring-boot集成mybatis真的很简单吗?

 

以上,就完成配置。经过这几步就完成了mybatis和spring-boot的集成,是不是很好奇为什么这么简单?下面简单分析下。

 

四、mybatis是怎么集成到springboot中的

讲这个问题之前,先要达成一个共识:spring是一个bean的容器,管理bean的生命周期。

来看下mybatis中的Mapper接口,该接口会被实例化为一个代理对象,在代理对象中有一个sqlSession的变量,该变量是SqlSessionTemplate类型的,SqlSessionTemplate是mybatis中的类,

spring-boot集成mybatis真的很简单吗?

它是怎么被注入到spring管理的类中,答案是通过MybatisAutoConfiguration这个类,该类在mybatis-spring-boot-starter中,有这样一个方法,

spring-boot集成mybatis真的很简单吗?

该方法会生成一个sqlSessionTemplate,这样就可以和mybatis联系在一起了,而更有意思的是下面这个方法,生成sqlSessionFactory的方法,追踪该方法可以看到mybatis的源码中,并熟悉整个流程。

spring-boot集成mybatis真的很简单吗?

感兴趣的小伙伴可以自己看下源码哦,同时也可以看“推荐阅读”中有关mybaits源码的分析。

 

五、总结

关于spring-boot集成mybatis的有关问题就分享到这儿了,遵循下面几点,

1、添加相关依赖,mybatis-spring-boot-starter、数据库驱动;

2、mybatis的配置,扫描mapper接口、加载xml文件;

3、数据源配置,驱动类、url、user、password等;

最后,本文用到的源码均可关注下方公众号获得,欢迎与志同道合的你一起交流学习。

spring-boot集成mybatis真的很简单吗?

推荐阅读

我的第一个springboot  starter

mybatis源码配置文件解析之一:解析properties标签

springboot引入mybatis遇到的坑文章来源地址https://www.toymoban.com/news/detail-474063.html

到了这里,关于spring-boot集成mybatis真的很简单吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 7. Spring Boot 与MyBatis集成

    在我们日常的开发过程中,肯定不可避免的会使用到数据库以及 SQL 语句。比如,刚开始学习 Java 的时候可能会遇到 JDBC,它是连接 Java 和数据库的桥梁,我们可以使用 JDBC 来建立与数据库之间的连接并且执行相应的 SQL 语句。虽然 JDBC 的执行效率很高,但是其开发效率比较低

    2024年01月25日
    浏览(46)
  • Spring Boot集成MyBatis Plus

    在现代软件开发中,构建高效、可维护的项目是至关重要的。Spring Boot 是一个流行的框架,它简化了Java应用程序的开发过程。而 MyBatis Plus 则是一个强大的持久层框架,通过简化数据库操作,提升了开发效率。本文将介绍如何使用 Spring Boot 结合 MyBatis Plus 构建高效的项目,附

    2024年02月11日
    浏览(44)
  • 真的简单,单手用Spring Boot 开发一个微信小程序

      嗨,大家好,现在微信使用的用户很多,作为开发人员也可以建立一个自己的微信小程序,本期与大家分享一下作者建立微信小程序的开发流程。   百度搜索微信公众号平台,然后扫码登录注册一个微信公众号,   进入申请页面之后,需要及时完善小程序相关信息

    2024年02月10日
    浏览(87)
  • 深入解析Spring Boot集成MyBatis的多种方式

    🎉欢迎来到架构设计专栏~深入解析Spring Boot集成MyBatis的多种方式 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:架构设计 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水平有限,如

    2024年02月04日
    浏览(53)
  • 从零开始学Spring Boot系列-集成mybatis

    在Spring Boot的应用开发中,MyBatis是一个非常流行的持久层框架,它支持定制化SQL、存储过程以及高级映射。在本篇文章中,我们将学习如何在Spring Boot项目中集成MyBatis,以便通过MyBatis进行数据库操作。 首先,我们需要在项目中添加MyBatis的依赖。在Spring Boot中,我们通常会使

    2024年03月10日
    浏览(130)
  • spring boot集成mybatis-plus——Mybatis Plus 查询数据(图文讲解)

     更新时间 2023-01-03 16:07:12 大家好,我是小哈。 本小节中,我们将学习如何通过 Mybatis Plus 查询数据库表中的数据。 在前面小节中,我们已经定义好了一个用于测试的用户表, 执行脚本如下: 定义一个名为  User  实体类: 不明白 Mybatis Plus 实体类注解的小伙伴,可参考前面

    2024年02月02日
    浏览(63)
  • 【Spring Boot】Spring Boot结合MyBatis简单实现学生信息管理模块

    环境准备 JDK Spring Boot MyBatis 创建Spring Boot项目 使用Spring Initializr创建一个新的Spring Boot项目,并添加以下依赖: Spring Web MyBatis Framework MySQL Driver 数据库设计 在MySQL数据库中创建一个名为 studentdb 的数据库,并创建一个名为 students 的表,表结构如下:

    2024年02月11日
    浏览(53)
  • 从零开始学Spring Boot系列-集成MyBatis-Plus

    在Spring Boot应用开发中,MyBatis-Plus是一个强大且易于使用的MyBatis增强工具,它提供了很多实用的功能,如代码生成器、条件构造器、分页插件等,极大地简化了MyBatis的使用和配置。本篇文章将指导大家如何在Spring Boot项目中集成MyBatis-Plus。 首先,确保你已经安装了Java开发环

    2024年04月08日
    浏览(83)
  • Spring boot简单集成Elasticsearch

    本文主要介绍Spring boot如何简单集成Elasticsearch,关于es,可以理解为一个数据库,往es中插入数据,然后使用es进行检索。 环境准备 安装es 和kibana :参考 安装ik分词器:参考 相关配置 pom.xml文件中引入es: yml文件配置es: ES查询 往es插数据 需要让mapper层继承ElasticsearchReposito

    2024年02月22日
    浏览(50)
  • spring boot集成mybatis-plus——Mybatis Plus 批量 Insert_新增数据(图文讲解)

     更新时间 2023-01-10 16:02:58 大家好,我是小哈。 本小节中,我们将学习如何通过 Mybatis Plus 实现 MySQL 批量插入数据。 先抛出一个问题:假设老板给你下了个任务,向数据库中添加 100 万条数据,并且不能耗时太久! 通常来说,我们向 MySQL 中新增一条记录,SQL 语句类似如下:

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包