基于SpringBoot的Mybatis和纯MyBatis项目搭建的区别

【由于之前学习MyBatis的时候是跟着视频敲的纯MyBatis项目,以至于在突然看到别人在SpringBoot项目里搭建MyBatis方式的时候很懵比...特此文字形式记录一下区别(应该还有好多种其他方式是我不知道的,主要应该就是要知道关键的流程步骤,其他的形式就算再多上手也很快了)】

目录

纯MyBatis项目

大致步骤

1、自己创建pojo表,添加数据

2、maven引入MyBatis坐标

3、在mybatis-config.xml中自己编写MyBatis核心配置文件:数据库连接信息、sql映射文件路径等

4、自己编写Mapper接口和sql映射文件:xxxMapper(接口,只定义方法)、xxxMapper.xml(sql映射文件,放在resources中,用来写具体的sql语句)

5、编写MyBatisDemo测试类 (手动加载mybatis的核心配置文件、获取 SqlSessionFactory、获取sqlSession对象用来执行sql、获取Mapper接口代理对象+执行sql、释放SqlSession)

【基本就是纯手工活儿】


基于SpringBoot的MyBatis搭建

先了解芝士

-- MBG :MBG(MyBatis Generator)是MyBatis官方提供的代码生

成工具,用于根据数据库表结构自动生成所需代码,包括:实体类、Mapper接口、Mapper映射文件xml、数据库表的CRUD代码。

大致步骤

0、maven中引入MyBatis相关依赖

1、配置MBG :配置generator.properties(定义数据库连接信息) → 配置generatorConfig.xml(是MBG的核心配置文件) → 运行Generator类(会自动生成文件夹来存放实体类、Mapper接口和sql映射文件)

2、application.yml中配置sql映射文件mapper.xml的位置

3、创建MyBatisConfig配置类配置mapper接口路径等

【解放双手了说是,而且配置MBG的具体代码也不需要自己写,网上找找就行】

区别

1、SpringBoot开发中,使用@Configuration配置类替代了传统的xml核心配置文件

2、SpringBoot中整合mybatis后,sql映射文件的位置由application.yml的mapper-locations来指定(没有xml核心配置文件,就不用在里面写了)

3、新旧mybatis配置对比:

:在xml配置文件中,<mappers>用于指定sql映射文件的位置,这样MyBatis就能找到该文件来映射SQL语句【需要同时配置接口和映射文件】

:在spring的Config配置类中,@MapperScan注解用于自动扫描Mapper接口,并为它们创建代理实现类,这样就不需要手动配置每个Mapper的sql映射文件了【spring更关注接口的扫描】

总结

1、传统的xml配置:直接管理MyBatis的XML和接口绑定

2、spring的@MapperScan:专注于让Spring管理Mapper接口的实例化,依赖MyBatis的默认约定或外部配置来定位XML

相关推荐
方也_arkling4 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮5 小时前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei115 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1125 小时前
web-第一次课后作业
java·开发语言·idea
秋95 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本5 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
DIY源码阁6 小时前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
basketball6167 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
JAVA面经实录9177 小时前
MyBatis面试题库
java·mybatis
小江的记录本7 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试