当前位置: 首页 > news >正文

SpringBoot中整合Mybatis

一、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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 自定义实现一个 Redis 客户端
  • coze 卡片使用
  • 基于k8s集群的redis-cluster集群
  • 计算机,人工智能选题
  • 自动驾驶大模型算法助力端到端顺利落地
  • Δ-Σ ADC选型时噪声性能实例详解
  • Java元组Tuple的使用
  • Qt 哈希加密之 QCryptographicHash
  • 泛微OA流程接口调用工具类
  • SpringBoot的Web开发
  • 护眼大路灯哪个牌子好?公认五款最好护眼大路灯分享
  • C++ 特性之vector详解 + 联合opencv使用
  • 数据库方式实现实时排行榜
  • http参数污染利用php小特性绕过贷齐乐waf
  • Dom 元素转换 Image 图片 (截图)
  • 2018一半小结一波
  • angular2开源库收集
  • extjs4学习之配置
  • FineReport中如何实现自动滚屏效果
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JavaScript服务器推送技术之 WebSocket
  • Laravel Mix运行时关于es2015报错解决方案
  • Meteor的表单提交:Form
  • ng6--错误信息小结(持续更新)
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Odoo domain写法及运用
  • 对超线程几个不同角度的解释
  • 关于for循环的简单归纳
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 浏览器缓存机制分析
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • - 转 Ext2.0 form使用实例
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ######## golang各章节终篇索引 ########
  • #define 用法
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #数据结构 笔记三
  • (1)Jupyter Notebook 下载及安装
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @EnableConfigurationProperties注解使用
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [android] 切换界面的通用处理
  • [Angular] 笔记 9:list/detail 页面以及@Output