SpringBoot中整合Mybatis

server/2024/10/21 7:28:39/

一、Mybatis快速入门

1.1、在相应的模块中添加依赖的坐标

首先创建一个maven项目

a2b2cffacd3a4e7089299b029773ef7f.png

在对应的pom.xml文件中引入下面的依赖 

<dependencies><!--mybatis 依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><!--mysql 驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency>
</dependencies>

1.2、编写核心配置文件

resources包中编写mybatis-config.xml配置文件,配置数据库的连接信息,mybatis官网复制即可。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><!--配置连接数据库的连接参数--><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><!--2 加载Mapper接口和SQL语句,将给的例子注释掉。后面第三大步中配置--><!--<mappers><mapper resource="org/mybatis/example/BlogMapper.xml"/></mappers>-->
</configuration>

核心配置文件的作用:

1、配置连接数据库环境信息。

​ 2、通过扫包加载和mapper接口和SQL

1.3、总结

mybatis的使用步骤:

1、引入对应的依赖

2、设置核心配置文件mybatis-config.xml

二、SpringBoot项目中整合Mybatis

创建一个springboot的web项目:

9620bfc5c2e54ffdaeeb8687338bf841.png

2.1、 在相应的模块中添加依赖的坐标

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>cloud-demo</artifactId><groupId>cn.itcast.demo</groupId><version>1.0</version></parent><modelVersion>4.0.0</modelVersion><artifactId>user-service</artifactId><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency>   </dependencies><build><finalName>app</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

其中:

1、mybatis-spring-boot-starter

2、mysql-connector-java

这两个依赖是使用mybatis所必须的

2.2、application.yml配置文件中设置数据库等信息

server:port: 8081
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/cloud_user?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghaiusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Drivermybatis:type-aliases-package: cn.itcast.user.pojomapper-locations: classpath:/mapper/**/*.xmlconfiguration:map-underscore-to-camel-case: true

其中application.yml配置文件中设置的数据库连接信息,以及mapper.xml的位置设置都是之前在mybatis-config.xml配置文件中设置的。

所以使用springboot整合mybatis后可以删除mybatis-config.xml配置文件

2.3总结

SpringBoot中整合mybatis的使用步骤:

1、引入对应的依赖

2、设置核心配置文件application.yml

三、Mapper.xml文件的放置规则

        mapper中的每一个方法,都应该对应有一条sql语句。可以使用注解的形式,也可以写在对应的mapper.xml中。

下面采用的是注解的形式

f409ea098a65422ca27f747e23f95291.png

如果采用的是mapper.xml的形式,那么要特别注意mapper.xml文件的放置位置

3.1、和mapper放在同级目录

可以看见UserMapper和UserMapper.xml都在cn/itcast/user/mapper/包下

60416daa3dee4fcfbc5ab8d0e45b58b3.png

 这种情况下,不需要在application.yml中设置任何的参数

3.2、在application.yml配置文件中指定Mapper.xml的位置

mybatis:type-aliases-package: cn.itcast.user.pojomapper-locations: classpath:/mapper/**/*.xml

 例如我现在就指定mapper.xml文件在resources包下的mapper包以及mapper包的子包中

 1a4edcad5ea04de2b27316dd15da52ef.png

3.3、出现的报错

如果没有按照3.1、3.2中进行操作,就会出现下面的报错

9a3818565ba641e6b58b4a3b1f9cb59c.png

四、通过 MybatisProperties.class定位mapper.xml的位置

我们通过单击application.yml中的mapper-locations可以定位到加载mapper.xml的位置

ce42eabaf6d048c5b966321033c00d7f.png

debug启动项目后,在下面的位置打上断点。可以看见在MybatisProperties.class类中的setMapperLocations方法里面可以获取到mapper.xml的位置 

533aee5856144026af57e09a16b9a789.png

 五、@param注解的注意点

我们在mapper中如果存在多个参数的时候,会使用到@param注解,使用这个注解要导入对应的mybatis的包,不然会报下面的错误。

导入这个注解

210f5c75c6764cea979ac8ba1c225d01.png

导错包出现的报错 0281dbde421b42bb8611b169c70f1ad8.png


http://www.ppmy.cn/server/99463.html

相关文章

笔记工具的选择:构建编程学习的高效系统

在编程学习的海洋中&#xff0c;高效的笔记记录和整理方法就像一张珍贵的航海图&#xff0c;能够帮助我们在浩瀚的知识中找到方向。如何建立一个既能快速记录又易于回顾的笔记系统&#xff1f;如何在繁忙的学习中保持笔记的条理性&#xff1f;让我们一起探讨如何打造属于自己的…

uniapp vue 在适配百度小程序平台动态:style

uniapp vue 在适配百度小程序平台动态:style踩坑报错Unexpected string concatenation of literals 抖快平台动态style写法基本是 <view :style"{width: 686rpx, height: (setHeight 96) rpx}"> </view>这种写法在百度上会又解析报错&#xff1a; Une…

Postman Pre-request Script

这个其实是普通的js脚本&#xff0c;有一些和postman的通信他也提供了一些快捷命令如下 postman常用参数使用 环境变量 //设置当前环境变量 pm.environment.set("key", "value"); //获取当前环境变量 pm.environment.get("key"); //清除当前…

360安全大模型为什么是“非卖品”?

大模型虽然不是万能的&#xff0c;但是没有大模型又是万万不能的。以AI大模型为动力引擎&#xff0c;AI正在重塑各行各业&#xff0c;并快速“飞入寻常百姓家”。 AI安全 以“模”制“模” 2024年全国两会&#xff0c;“人工智能”首次被写入政府工作报告。报告中提出&#xff…

一文搞懂后端面试之不停机数据迁移【中间件 | 数据库 | MySQL | 数据一致性】

数据迁移方面的工作&#xff1a; 重构老系统&#xff1a;使用新的表结构来存储数据单库拆分分库分表、分库分表扩容大表修改表结构定义 数据备份工具 MySQL上常用的两款数据备份工具&#xff1a;mysqldump和XtraBackup mysqldump&#xff1a;一个用于备份和恢复数据库的命令…

缓存淘汰策略有哪些?

缓存淘汰策略是在缓存空间有限时&#xff0c;用于决定哪些数据应该从缓存中移除的方法。常见的缓存淘汰策略包括以下几种&#xff1a; 最近最少使用&#xff08;Least Recently Used, LRU&#xff09;策略&#xff1a; 核心思想&#xff1a;将最近最少使用的数据淘汰&#xff0…

AI播客产品:重塑个性化音频体验的未来

在数字化内容消费日益碎片化和个性化的今天,AI技术正以前所未有的方式重塑着我们的信息获取方式。近期,Shopify CEO对于AI播客产品化的前瞻构想引发了广泛讨论,这一构想不仅挑战了传统播客行业的边界,更为用户带来了前所未有的个性化音频体验。本文将深入探讨这一构想,从核…

51单片机学习

1.1控制一个灯亮 void main() { P20xFE; } 1.2控制一个灯闪烁 void Delay500ms() //12.000MHz { unsigned char i, j, k; _nop_(); i 4; j 205; k 187; do { do { while (--k); } while (--j); …