SpringBoot3 整合 Mybatis 完整版

本文记录一下完整的 SpringBoot3 整合 Mybatis 的步骤。
只要按照本步骤来操作,整合完成后就可以正常使用。

1. 添加数据库驱动依赖

以 MySQL 为例。
当不指定 依赖版本的时候,会 由 springboot 自动管理。

<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><!-- <version>8.0.32</version> -->
</dependency>

2. 添加 MyBatis 依赖

第三方的依赖库,需要明确的指定版本号。推荐使用最新的即可。

<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>

3. 配置数据源信息

在 application.yaml 文件中添加数据源的信息

spring:datasource:# 数据库连接驱动driver-class-name: com.mysql.cj.jdbc.Driver# 数据源类型: 默认的是 Hikaritype: com.zaxxer.hikari.HikariDataSource# 数据库连接地址url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai# 数据库连接用户名username: root# 数据库连接密码password: 12345678

4. 配置 mybatis

在 application.yaml 文件中添加mybatis的相关配置。

# mybatis 的配置
mybatis:# 配置 mybatis 的xml文件的扫描路径mapper-locations: classpath:mybatis/**/*.xml# 配置实体类的扫描路径type-aliases-package: com.testabc.demo.ssmtestconfiguration:# 开启驼峰命名转换map-underscore-to-camel-case: true# 开启日志#log-impl: org.apache.ibatis.logging.stdout.StdOutImpllog-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl# 指定日志级别 : 对mybatis的日志输出
logging:level:com.testabc.demo.ssmtest: debug

5. 功能开发

5.1 建表

简单创建一张表。包含了普通属性,标准的下划线属性。

CREATE TABLE `test`.`student`  (`id` int NOT NULL,`name` varchar(20) NOT NULL,`age` int NOT NULL,`other_message` varchar(100) NULL,PRIMARY KEY (`id`)
);

5.2 创建普通的bean类

结合表结构,创建普通的一个bean类。此时属性用标准的驼峰命名

package com.testabc.demo.ssmtest;public class Student {private int id;private String name;private int age;private String otherMessage;。。。。。。构造方法getter/settertoString 方法}

5.3 创建mapper接口

注意 : 此处的接口用到了 @Mapper 注解。先写上吧,没有副作用。

package com.testabc.demo.ssmtest;import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;@Mapper
public interface StudentMapper {// 根据id查询student的方法Student getStudentById(@Param("id") int id);
}

5.4 创建xml文件

classpath:/resources/mybatis/ 目录下新增 StudentMapper.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.testabc.demo.ssmtest.StudentMapper"><select id="getStudentById" resultType="com.testabc.demo.ssmtest.Student">select * from student where id = #{id}</select></mapper>

5.5 创建controller类

package com.testabc.demo.ssmtest;@RestController
public class StudentController {/*** 通过构造方法的方式注入 StudentMapper*/private final StudentMapper studentMapper;public StudentController(StudentMapper studentMapper) {this.studentMapper = studentMapper;}@GetMapping("/getStudentById/{id}")public Student getStudentById(@PathVariable("id") int id){Student student = null;student = studentMapper.getStudentById(id);return student;}
}

5.6 配置扫描的包

在 项目的 启动类上添加注解 MapperScan(xxxx), 指定要扫描的 mapper 接口的包路径。

package com.testabc.demo;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.testabc.demo.ssmtest")
public class DemoApplication {public static void main(String[] args) {// 这个工具会返回一个 ApplicationContext 的对象var ioc = SpringApplication.run(DemoApplication.class, args);}}

6. 功能测试

浏览器中访问测试。

在这里插入图片描述
在这里插入图片描述
成功,至此,已经完成了 SpringBoot3 整合 Mybatis 的步骤。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/27388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

友元函数(friend function)的原理、特点、使用方法和注意点

友元函数&#xff08;friend function&#xff09;是C中一种特殊的函数&#xff0c;它可以访问类的私有和保护成员。尽管它不是类的成员函数&#xff0c;但它能通过声明为友元来获得对类成员的访问权限。以下是友元函数的原理、特点、使用方法和注意点&#xff1a; 原理 友元…

git原理解释,windows 10 / ubuntu 24.04 安装使用 github

git的原理 git是赫赫有名的Linux之父Linus Torvalds从2005年起开发的文件版本管理系统&#xff0c;掌控Linux内核这样一个最为重量级的世界产品的Linus为什么要开发这个东西呢&#xff1f;因为Linux系统由全世界的程序员协作维护&#xff0c;对源代码文件的版本控制管理的需求…

yolo案例项目学习记录

box-ocr: 监控摄像头视频流实时计数传送带的货物&#xff0c;并提取货物上面文字或二维码 1.本地环境&#xff1a; 1.1torch、torchvison、torchaudio版本对应关系 PyTorch中torch、torchvision、torchaudio、torchtext版本对应关系_torch2.0.1对应的torchvision-CSDN博客 1…

Python 全栈系列252 一些小计划

说明 最近整体进展还比较顺利&#xff0c;不过也因为这样&#xff0c;好几个线头怎么继续平衡和推进需要稍微捋一下。 内容 按重要|紧急方法来看&#xff0c;线头1是重要且紧急的&#xff0c;QTV200也算重要且紧急&#xff0c;其他都算是重要不紧急。 线头1: 数据清洗 虽然…

OpenGL3.3_C++_Windows(10)

最终演示 ​ demo演示 Assimp模型渲染 模型导入库Assimp&#xff1a;导入很多种不同的模型文件格式&#xff0c;加载至Assimp的通用数据结构&#xff08;树形&#xff09;中&#xff0c;不论导入的是什么种类的文件格式&#xff0c;用同一种方式访问我们需要的数据。 Assimp库…

【python-AI篇】人工智能技能树思维导图

大致总结一下得出如下思维导图&#xff0c;如不完善日后迭代更新 1. python基础三方库 1.1 科学计算库 ---- numpy库 1.2 科学计算库 ---- Scipy库 1.3 数据分析处理库 ---- pandas库 1.4 可视化库 ---- matplotlib库 1.5 可视化库 ---- seaborn库 1.6 机器学习和数据挖掘库 …

这世上又多了一只爬虫(spiderflow)

让我们一起默念&#xff1a; 爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫 接着大声喊出来&#xff1a; 一&#xff01;只&#xff01;爬&#xff01;虫&#xff01;呀&#xff01;爬&#xff01;呀&#xff01;爬&#xf…

高考志愿填报选专业,兴趣爱好和就业前景哪个优先?

每个人都有自己的兴趣与爱好&#xff0c;而高考志愿填报是在为自己选择职业方向。最理想的状态就是把自己的兴趣和爱好与自己的职业统一起来&#xff0c;让兴趣和爱好促进职业的发展&#xff0c;为职业增添动力。但现实生活中&#xff0c;这种理想的状态并不是每个人都能达到的…

AXI 1G/2.5G Ethernet Subsystem IP核使用过程中参数配置全解

AXI 1G/2.5G Ethernet Subsystem 是一个为FPGA设计的以太网子系统&#xff0c;它支持1Gbps和2.5Gbps的数据传输速率&#xff0c;使得FPGA能够直接进行高速以太网通信。这个子系统通常包含以太网MAC控制器、GMII&#xff08;千兆媒体独立接口&#xff09;或RGMII&#xff08;简化…

Web前端后端架构:构建高效、稳定与可扩展的互联网应用

Web前端后端架构&#xff1a;构建高效、稳定与可扩展的互联网应用 在构建互联网应用的过程中&#xff0c;Web前端与后端架构的设计与实施至关重要。一个优秀的架构能够确保应用的稳定性、高效性和可扩展性&#xff0c;为用户提供流畅、安全的体验。本文将从四个方面、五个方面…

抖音视频素材在哪找无版权?免版权可以剪辑视频素材网站分享

在抖音视频制作中&#xff0c;素材的选择至关重要。今天&#xff0c;我就为大家推荐几个宝藏网站&#xff0c;帮你找到既好用又无版权纠纷的视频素材。无论你是新手还是老手&#xff0c;这些网站都能满足你的需求。 蛙学府 首先推荐的是蛙学府。这个网站提供丰富的视频素材&am…

C语言从头学18——类型的自动转换

某些情况下&#xff0c;C语言会自动转换某个值的类型&#xff0c;以下几种情况有必要了解&#xff1a; 1、赋值运算过程中类型转换 赋值运算符会自动将右边的值转成左边变量的类型。 (1) 浮点数赋值给整数变量&#xff0c;C语言会直接丢弃小数部分&#xff…

React小记(一)_基础部分

1、项目搭建与结构 2、类组件和函数组件 主要区别&#xff1a;1、函数组件没有生命周期2、函数组件没有this指向3、函数组件没有状态4、函数组件通过hooks实现各种操作5、props在函数的第一个参数接收6、函数体相当于类组件的render函数import React from reactfunction App()…

AI 到底是什么?

AI到底是什么&#xff1f; AI&#xff08;Artificial Intelligence&#xff09;指的是一种可以制造计算机程序的计算机科学工程&#xff0c;也是当前计算机学科中的一个研究分支。把“Artificial Intelligence”翻译为“人为再造情报”更贴合它在当前落地项目中的工作场…

[CUDA编程] cuda graph优化心得

CUDA Graph 1. cuda graph的使用场景 cuda graph在一个kernel要多次执行&#xff0c;且每次只更改kernel 参数或者不更改参数时使用效果更加&#xff1b;但是如果将graph替换已有的kernel组合&#xff0c;且没有重复执行&#xff0c;感觉效率不是很高反而低于原始的kernel调用…

Linux-笔记 设备树插件

目录 前言&#xff1a; 设备树插件的书写规范&#xff1a; 设备树插件的编译&#xff1a; 内核配置: 应用背景&#xff1a; 举例&#xff1a; 前言&#xff1a; 设备树插件&#xff08;Device Tree Blob Overlay&#xff0c;简称 DTBO&#xff09;是Linux内核和嵌入式系统…

【Ardiuno】使用ESP32单片机网络功能调用API接口(图文)

接着上文连通wifi后&#xff0c;我们通过使用HTTPClient库进行网络相关操作&#xff0c;这里我们通过http协议进行接口调用。 为了简化操作&#xff0c;小飞鱼这里使用了本地服务器上的文件作为接口&#xff0c;正常操作时会调用接口后&#xff0c;将服务器返回的数据进行解析…

门控循环单元GRU与长短期记忆网络LSTM

门控循环单元与长短期记忆网络 门控隐状态 问题提出&#xff1a;对于一个序列来说不是每个观察值都是同等重要想只记住相关的观察需要&#xff1a; 能关注的机制&#xff08;更新门&#xff09;能遗忘的机制&#xff08;重置门&#xff09; 第一个词元的影响至关重要。 我们…

【第10章】Vue之Element Plus常用组件

文章目录 前言一、表格1. 带斑马纹表格2. 展示 二、分页1.国际化(中文)2.分页代码3. 展示 三、表单1. 表单代码2. 展示 四、卡片1. 卡片代码2. 展示 总结 前言 通过上一章的快速入门&#xff0c;我们已经学习了按钮使用&#xff0c;接下来学习Element Plus的常用组件&#xff…

SQL 快速参考

SQL 快速参考 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理关系数据库管理系统&#xff08;RDBMS&#xff09;的标准编程语言。它用于执行各种操作&#xff0c;如查询、更新、插入和删除数据库中的数据。本快速参考将提供SQL的基本语法和常用命令&…