【springboot】20、Spring Boot 整合 MyBatis

news2025/7/27 23:31:57

文章目录

  • 基本介绍
  • 1、引入相关依赖
  • 2、数据库基本配置
  • 3、编写mapper接口和映射文件
  • 4、指定Mapper文件的位置
  • 5、测试
  • 总结

基本介绍

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。下面我来介绍一下如何在springboot的项目中使用mybatis。

1、引入相关依赖

我们想要使用mybatis肯定就需要引入相应的jar包,由于我们需要和springboot进行整合,所以需要引入相应的starter,我们在springboot中使用mybatis要引入的jar包名称就是mybatis-spring-boot-starter,具体如下

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>

当然,处理上面这个starter肯定还需要引入相关的数据库连接的依赖,比如mysql

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>

2、数据库基本配置

这个就是固定操作,我们需要在配置文件中配置数据库的相关信息

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&useSSL=true
    username: root
    password: root

3、编写mapper接口和映射文件

下面是我写的一个People类

@Data
public class People {
    private Integer id;
    private String name;
    private String gender;
    private Integer age;
}

编写PeopleMapper

@Mapper
public interface PeopleMapper {

    /**
     * 查询people表所有信息
     * @return 返回所有的people信息
     */
    List<People> queryAll();
}

注意:我们要使用@Mapper注解标识Mapper接口
下一步就是编写自己对于的mapper文件,我将所有的mapper文件统一放在resources/mapper目录下

在这里插入图片描述
PeopleMapper.xml文件内容如下

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ttpfx.mapper.PeopleMapper">
    <select id="queryAll" resultType="com.ttpfx.bean.People">
        select * from people
    </select>
</mapper>

4、指定Mapper文件的位置

我们写完mapper文件后需要在指定mapper文件的位置,我们就在springboot的配置文件中指定即可

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

上面的语句就表示mapper文件就是位于类路径下的mapper目录下的所有xml文件。
这里说明一下,Mybatis的配置项可以查看MybatisProperties这个类

在这里插入图片描述

该类的字段如下

在这里插入图片描述
这些字段都是顾名思义,对mybatis熟悉一点应该都知道是上面用法,如果不清楚去看看该字段上的注释或者官方文档即可。

5、测试

创建测试文件

@SpringBootTest
public class SqlTest {

    @Resource
    private PeopleMapper peopleMapper;

    @Test
    public void t1() {
        List<People> peopleList = peopleMapper.queryAll();
        System.out.println();
        for (People people : peopleList) {
            System.out.println(people);
        }
        System.out.println();
    }
}

数据库people表信息为

在这里插入图片描述

运行测试代码,查看控制台输出

在这里插入图片描述
测试成功,最基本的用法就是这样的。

总结

在springboot中使用mybatis还是十分简单的,很多都已经自动配置好了,如果我们需要配置什么,查看官方文档或者注释配置即可

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

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

相关文章

英伟达RTX 4080正式发布!这一波是谁赢麻了?

在RTX40系列发布之前&#xff0c;我一直以为今年经济不行&#xff0c;直到看到大家抢购4090的样子&#xff0c;才发现只有我的经济不行。 距离英伟达 RTX 4090显卡的发布已经过去了一个月&#xff0c;40系列家族又出一员大将——英伟达 RTX 4080&#xff0c;公版定价9499在上市…

什么是RC低通滤波电路

滤波电路顾名思义就是滤除不需要的信号&#xff0c;保留需要的信号&#xff0c; 其中无源RC滤波电路要数最简单的滤波电路了。 电路图的话大家加可以看下&#xff0c;包含一个电阻和电容。 低通的话就是频率低的信号可以无衰减的通过&#xff0c;频率高得信号会产生衰减&#…

主成分分析(机器学习)

目录 主成分分析&#xff08;PCA&#xff09;是最常用的线性降维方法 设有m条n维数据&#xff0c;PCA的一般步骤如下 主成分分析&#xff08;PCA&#xff09;是最常用的线性降维方法 它的目标是通过某种线性投影&#xff0c;将高维的数据映射到低维的空间中 并期望在所投影的…

如何使用Docker搭建ES集群

1、配置虚拟机 1.1、设置内存 将虚拟机内存设置为4G&#xff0c;内存太小可能导致某个ES节点无法正常运行&#xff1b; 1.2、修改limits.conf limits.conf文件可以设置用户最大可创建文件的数量 a、执行vi /etc/security/limits.conf命令—>文件末尾添加如下内容&#…

计算机毕业设计ssm+vue+elementUI 基于vue的消防物资存储系统

项目介绍 无论是什么行业物资存储都是一个非常重要的内容&#xff0c;只有有了这些良好的物资存储&#xff0c;才能够为后续的工作开展提供便利。消防是一个关系到人民群众安全的工作&#xff0c;所以在消防相关方面的物资存储也是非常重要的内容。为了能够更好的管理好消防相…

电压放大器如何选择型号规格(电压放大器选型标准)

电压放大器是搭配信号发生器来组合使用的电子仪器&#xff0c;使用时通过简单的设备连接&#xff0c;就能拓展信号源的输入电压幅度范围。高电压放大器的快速响应不仅是表现在功率放大器的宽带和压摆率等参数上&#xff0c;同时还和最大输出电流以及负载的电容特性有关系。下面…

48-安装软件并管理服务

48-安装软件并管理服务RPM的概念和操作命令RPM软件包管理RPM软件包管理优缺点RPM命令常用参数DNF的该您概念和操作命令DNF工具的产生DNF工具概述DNF管理软件包DNF-软件源服务DNF配置文件-/etc/dnf/dnf.conf配置DNF-修改配置参数创建本地软件源仓库添加软件源启用和禁用软件源管…

BFS广度优先

题目描述如下&#xff1a; 使用邻接矩阵实现BFS&#xff1a; 输入 8,10 1 2 3 4 5 6 7 8 1,2 1,5 2,6 3,6 3,4 3,7 4,7 4,8 6,7 7,8 2 输出 请输入顶点数和边数:请输入顶点本身的数据: 请输入边的数据: 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0…

Winsoft Office Component Suite

Winsoft Office Component Suite Winsoft Office组件套件是由Winsoft发布的海豚和CBuilder公司的集合。这些计算机可用于在microsoft office集合中实现自动化和自动操作。从2010年到2019年&#xff0c;这些活动几乎支持了Office的所有现代版本&#xff0c;并提供了两种软件和氧…

掌控安全学院SOL注入靶场

掌控安全学院SOL注入靶场靶场地址Pass-01 显错注入Pass-02Pass-03Pass-04Pass-05 POST注入Pass-06Pass-07 Head注入Pass-08Pass-09Pass-10 布尔盲注Pass-11Pass-12Pass-13 延时注入Pass-14Pass-15 宽字节注入Pass-16Pass-17总结靶场地址 http://inject2.lab.aqlab.cn Pass-01…

[Python] Django ORM与执行原生SQL实现操作数据库

前言 系列文章目录 [Python]目录 文章目录前言&#x1f349; ORM&#x1f349; shell&#x1f349; 模型类与数据的准备&#x1f352; 模型类&#x1f352; 数据&#x1f349; 查询数据&#x1f352; 查询集&#x1f353; 查询集的特性&#x1f34e; 惰性执行&#x1f34e; 缓存…

PDF文件如何设置密码保护?

接近年底&#xff0c;各种总结报告越来越多&#xff0c;很多时候我们都会将报告做成PDF文件格式&#xff0c;对于重要的内容&#xff0c;往往还需要设置密码保护。 根据不同的需要&#xff0c;可以给PDF文件设置两种保护模式。 如果文件内容只分享给特定的人看&#xff0c;不…

qt调用python脚本中的函数

开发环境&#xff1a; qt 5.9.9 vs2015 python 3.6 例程下载&#xff1a; qt调用python脚本例程.rar 步骤一&#xff1a;创建python脚本文件 创建文本文件myPythonFile.py&#xff0c;内容如下&#xff1a; 步骤二&#xff1a;创建qt widget测试例程并运行 新建qt wi…

请不要忽略软件测试的业务能力

在日常的测试工作中&#xff0c;不知道大家是否会有梳理自己测试业务的习惯。我个人觉得这个事情是值得做的&#xff0c;最好还可以培养成一个习惯。一、为什么要梳理业务&#xff1f;因为在业务测试中&#xff0c;作为测试人员&#xff0c;熟悉负责的业务是非常重要的&#xf…

ats 6.2.3中diags.log日志滚存遇到的assert崩溃问题并解决

现在线上ats 6.2.3现在都开启了diags.log日志回滚的功能&#xff0c;采用下面的配置方法 CONFIG proxy.config.diags.logfile.rolling_enabled INT 3 CONFIG proxy.config.diags.logfile.rolling_interval_sec INT 86400 CONFIG proxy.config.diags.logfile.rolling_size_mb…

Web前端——立体相册的制作

文章目录笔记&#xff1a;CSS的特殊样式作业&#xff1a;用CSS的特殊样式制作立体相册笔记&#xff1a;CSS的特殊样式 media查询 常⽤于响应式布局&#xff0c;是⽬前使⽤最多的适配⻚⾯的技术。他会根据⻚⾯的尺⼨的不同&#xff0c;⽽是⽤不同的样式。 <style>media…

LeetCode50天刷题计划第二季(Day 31 — 两数之和 II - 输入有序数组(11.10-11.20)分数到小数(11.30-12.30)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、题目两数之和 II - 输入有序数组示例提示二、思路三、代码四、题目分数到小数示例提示五、思路六、代码前言 没看出来跟 两数之和 I 有什么区别 一、题目 …

码农死磕这份Java高级开发文档,成功‘挤‘进一线大厂,这也太强了吧

前言 很多程序员一开始在学习上找不到方向&#xff0c;但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显&#xff0c;工作的方向也会逐渐变得清晰起来。 但是没过多久&#xff0c;能了解到的资料就开始超过每天学习的能力&#xff0c;像是买了没看的书、…

内网渗透神器CobaltStrike之重定向服务配置(二)

重定向服务的概念 "重定向"是一个在CS服务器与目标主机进行网络传输之间的服务器, 不仅能保护CS服务器, 还能增强与目标网络传输的稳定性, 例如某一台重定向服务器倒塌了, 但是CS服务器还是能通过其他重定向服务器与目标网络进行信息传输 环境拓扑 域名: team.comD…

ELSEVIER期刊论文投稿全流程实例讲解

Elsevier期刊模板下载 从ELSEVIER搜索要投的期刊&#xff0c;进入期刊主页 https://www.elsevier.com/search-results?queryFuel