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

SpringBoot整合Mybatis 简单试用

1. 导入依赖

  • 我使用MySQL,需要导入MySQL的驱动依赖
  • 此外要在SpringBoot中使用Mybatis,则需要导入Mybatis启动器
        <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency>

需要注意版本对应关系,我是用springboot2.7.14,则需要导入2.2或2.3的Mybatis启动器
在这里插入图片描述

2. 配置文件

在springboot的yaml配置文件中把连接数据库所需的spring.datasource和mybatis.mapper-locations配置好。

  • mapper-locations我设置的是classpath:mapper/*.xml,一般都是在
    resource目录下创建一个mapper文件夹,然后把所有的mapper.xml放进去。因此mapper-locations设置为classpath:mapper/*.xml的意思就是扫描mapper文件夹下的所有xml文件作为mybatis的mapper
  • spring.datasource则就是数据库连接所需的driver、url、username、password
mybatis:mapper-locations: classpath:mapper/*.xml
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mytestusername: rootpassword: root

3. 业务场景

dao层创建一个Mapper接口,注意需要用@Mapper标记

@Mapper
public interface UserMapper {User getUserByID(int id);
}

对应的在resource/mapper下创建对应的Mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wonder.mapper.UserMapper"><select id="getUserByID" parameterType="int" resultType="com.wonder.entity.User">select * from users where id=#{id}</select>
</mapper>

其中用到的entity

package com.wonder.entity;
public class User {private long id;private String name;private String username;private String password;private java.sql.Timestamp createtime;private long roleid;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public java.sql.Timestamp getCreatetime() {return createtime;}public void setCreatetime(java.sql.Timestamp createtime) {this.createtime = createtime;}public long getRoleid() {return roleid;}public void setRoleid(long roleid) {this.roleid = roleid;}
}

用到的数据库表和其中的数据
在这里插入图片描述

4. Service层和Controller层

public interface UserService {User getUserByID(int id);
}
@Service
public class UserServiceImpl implements UserService {@AutowiredUserMapper userMapper;@Overridepublic User getUserByID(int id) {return userMapper.getUserByID(id);}
}
@Controller
public class UserController {@AutowiredUserService userService;@RequestMapping("/getUser")@ResponseBodypublic User getUserByID(@RequestParam("id") int id){return userService.getUserByID(id);}
}

5. 测试效果

启动程序,浏览器中输入http://localhost:8080/getUser?id=2
在这里插入图片描述

6. 额外记录

记录下在IDEA中最好安装MyBatisX插件,能够方便的在IDEA中进行mapper和xml之间的跳转。相当好用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

SpringBoot整合Mybatis 简单试用

1. 导入依赖 我使用MySQL&#xff0c;需要导入MySQL的驱动依赖此外要在SpringBoot中使用Mybatis&#xff0c;则需要导入Mybatis启动器 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifact…...

SpringBoot案例-配置文件-yml配置文件

配置格式 SpringBoot提供了多种属性配置方式 application.propertiesapplication.ymlapplication.yaml常见配置文件格式对比 XML&#xff08;臃肿&#xff09; <configuration><database><host>localhost</host><port>3306</port><use…...

Web Components

Web Components标准非常重要的一个特性是&#xff0c;它使开发者能够将HTML页面的功能封装为custom elements&#xff08;自定义标签&#xff09;&#xff0c;可以使用CustomElementRegistry来管理自定义标签 <script>//1、创建自定义标签class NewElement extends HTML…...

IT运维软件的费用是多少?

正常一套IT运维软件费用一般在5千-50万之间不等&#xff0c;而且分为一次性付费或年付费模式&#xff0c;付费方式导致的价格也不同。 正常情况下IT运维软件的具体价格&#xff0c;是需要根据企业的实际需求来进行综合评估&#xff0c;一般来说&#xff0c;影响具体价格费用有以…...

基于Three.js的WebXR渲染入门

1、Three.js 渲染管线快速概览 我不会花太多时间讨论 Three.JS 渲染管道的工作原理,因为它在互联网上有详细记录(例如,此链接)。 我将在下图中列出基础知识,以便更容易理解各个部分的去向。 2、WebXR 设备 API 入门 在我们深入了解 WebXR API 本身之前,您应该知道 WebX…...

resource doesn‘t have a corresponding Go package.

resource doesnt have a corresponding Go package. GO这个鬼东西不能直接放src下。 ************ Building Go project: ProjectGoTest ************with GOPATH: D:\Go;D:\eclipse-jee-oxygen-2-win32-x86_64\workspace\ProjectGoTest >> Running: D:\Go\bin\go.exe …...

【微服务】微服务调用原理及服务治理

本文通过图文结合&#xff0c;简要讲述微服务的调用原理&#xff0c;以及服务治理的相关概念。 1.微服务的调用原理 举个栗子&#xff1a;你去会所洗脚。首先&#xff0c;技师肯定要先去会所应聘&#xff0c;通过之后&#xff0c;会所会记录该技师的信息和技能&#xff0c;然后…...

【在Windows下搭建Tomcat HTTP服务】

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器&#xff0c;不仅名字很有趣&#xff0…...

前端Vue3框架知识点大全

Vue.js是一种流行的JavaScript前端框架&#xff0c;它的第三个版本Vue3带来了许多令人兴奋的新特性和改进。 1、响应式数据&#xff1a; Vue 3采用了基于Proxy的响应式系统&#xff0c;相比Vue 2中的Object.defineProperty&#xff0c;Proxy提供了更强大和灵活的拦截器&#…...

C语言练习2(巩固提升)

C语言练习2 选择题 前言 “志之所趋&#xff0c;无远弗届&#xff0c;穷山距海&#xff0c;不能限也。”对想做爱做的事要敢试敢为&#xff0c;努力从无到有、从小到大&#xff0c;把理想变为现实。要敢于做先锋&#xff0c;而不做过客、当看客&#xff0c;让创新成为青春远航的…...

Vulnhub: DriftingBlues: 1靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.215 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.215 80端口首页源码 访问noteforkingfish.txt&#xff0c;发现为Ook!加密的密文 解密后提示需要用户eric和修改hosts文件&…...

Android项目如何上传Gitee仓库

前言 最近Android项目比较多&#xff0c;我都是把Android项目上传到Gitee中去&#xff0c;GitHub的话我用的少&#xff0c;可能我还是更喜欢Gitee吧&#xff0c;毕竟Gitee仓库用起来更加方便 一. 创建Gitee仓库 1. 先创建一个Gitee账号&#xff0c;然后登录上去 2. 创建Androi…...

MySQL——基础——联合查询

联合查询 - union,union all 对于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集 SELECT 字段列表 FROM 表A ... UNION [ALL] SELECT 字段列表 FROM 表B ...; 1.将薪资低于5000的员工,和 年龄大于50的员工全部查询出来 use itcast; select * from participat…...

Vue3+Vite 初始化Cesium

Vue3Vite 初始化Cesium 安装依赖 yarn add cesium yarn add vite-plugin-cesium -D加载vite-plugin-cesium插件 import { defineConfig } from vite import vue from vitejs/plugin-vue import cesium from vite-plugin-cesium;export default defineConfig({plugins: [vue(…...

c++内存地址分配

...

改进YOLO系列:9.添加S2Attention注意力机制

添加S2Attention注意力机制 1. S2Attention注意力机制论文2. S2Attention注意力机制原理3. S2Attention注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. S2Attention注意力机制论文 论文题目:S 2 -MLPV2: IMPROVED SPATIAL-SHIFT MLP ARCHITECTURE…...

微服务Feign组件远程调用自定义解码器

Feign远程调用响应结果格式 public class Result<T> {/*** 响应码&#xff0c;200为成功*/private Integer code;/*** 响应信息*/private String message;/*** 响应的具体对象*/private T data; }自定义Feign解码器 Component // 注入Spring的IOC容器中&#xff0c;所有…...

FairyGUI编辑器自定义菜单扩展插件

本文涉及到的软件有&#xff1a;FairyGUI&#xff0c;VSCode 代码环境涉及到了&#xff1a;Lua VSCode插件&#xff1a;EmmyLua 在编写FairyGUI编辑器菜单前&#xff0c;了解一下FairyGUIEditor的API会有效的帮助我们解决很多问题。FairyGUI的扩展是通过编辑器自带的插件功能…...

若依二次开发

目录 本地启动 前端代码 后端代码 代码适配 数据表初始化 远程部署...

安全(权限)框架Shiro概述及原理

1.1 Shiro是什么 Apache Shiro是一个功能强大且易于使用的Java安全&#xff08;权限&#xff09;框架。Shiro可以完成&#xff1a;认证、授权、加密、会话管理、与Web集成、缓存 等。借助Shiro您可以快速轻松地保护任何应用程序——从最小的移动应用程序到最大的Web和企业应用…...

华硕笔记本性能优化神器:3步掌握G-Helper轻量级控制中心

华硕笔记本性能优化神器&#xff1a;3步掌握G-Helper轻量级控制中心 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, …...

从算法理想向工程现实的跨越:SLAM 核心架构、思维误区与 Nav2 实战避坑指南

前言&#xff1a;直面 SLAM 的“先有鸡还是先有蛋” 在机器人领域&#xff0c;SLAM&#xff08;Simultaneous Localization and Mapping&#xff0c;同时定位与地图构建&#xff09; 毫无疑问是最耀眼的明珠之一。简单来说&#xff0c;它的核心任务就是让一个机器人在未知环境中…...

Altium Designer 21 实战:用Pad/Via模板库,5分钟搞定BGA盲埋孔PCB设计

Altium Designer 21 高效设计&#xff1a;用Pad/Via模板库5分钟完成BGA盲埋孔布局 面对0.65mm间距BGA封装的设计需求&#xff0c;传统手动设置焊盘和过孔的方式不仅耗时&#xff0c;还容易因参数输入错误导致生产问题。Altium Designer 21的Pad/Via模板功能&#xff0c;让工程师…...

【2026】记录在windows编译llama.cpp步骤,AMD CPU本地部署千问3.5本地大模型,内存占用低

前言 我的电脑是AMD的32G内存&#xff0c;没有GPU&#xff0c;偏要玩一玩千问3.5本地大语言模型&#xff0c;github上下载的llama安装包&#xff0c;无法使用&#xff0c;只有自己编译试试了。注意我是编译CPU版本的&#xff0c;你有GPU这篇别看了。 以下是我的CPU型号: 1.…...

STM32F103C8T6 Bootloader分区与跳转详解:手把手配置64KB Flash的16+48分配方案

STM32F103C8T6 Bootloader分区与跳转实战&#xff1a;64KB Flash的1648分配方案深度解析 在嵌入式开发中&#xff0c;Bootloader的设计往往是项目成败的关键一环。对于资源受限的STM32F103C8T6这类仅有64KB Flash的MCU来说&#xff0c;如何在Bootloader和应用程序之间合理分配这…...

渲染天空、日落与行星:给前端初学者的实时大气可视化入门指南

渲染天空、日落与行星&#xff1a;给前端初学者的实时大气可视化入门指南 你有没有想过&#xff0c;为什么浏览器里的一片蓝天看起来那么“假”&#xff1f;为什么游戏中的夕阳总像打了层柔光滤镜&#xff0c;却少了那种空气里浮动的微粒感&#xff1f;又或者&#xff0c;当你拖…...

Anthropic收购Stainless:AI Agent时代的连接革命

Anthropic收购Stainless&#xff1a;AI Agent时代的连接革命 1. 引言&#xff1a;从“回答”到“行动”的AI范式转移 1.1 收购概况&#xff1a;Anthropic于2026年5月宣布收购Stainless 2026年5月&#xff0c;AI领域迎来了一项颇具深意的收购案&#xff1a;Anthropic正式宣布收购…...

ARMv8.3指针认证技术原理与安全实践

1. AArch64指针认证技术深度解析指针认证&#xff08;Pointer Authentication&#xff09;是ARMv8.3-A引入的关键安全特性&#xff0c;通过在指针的高位比特中嵌入加密签名&#xff08;Pointer Authentication Code, PAC&#xff09;来验证指针的完整性。这项技术能有效防御ROP…...

VS Code 轻量自动化实战:Trae 集成 3 步配置与 5 个高频任务模板

1. 三步集成不是魔法,是可控的上下文锚点 大多数人第一次在 VS Code 里配 Trae,会直接打开官方文档翻到「安装」章节,复制粘贴几行命令,重启编辑器,然后对着空白的侧边栏发呆——它没反应。不是插件没装好,也不是网络问题。是我试过三次才意识到:Trae 的「激活」不靠重…...

在微服务架构中利用 Taotoken 实现多模型 API 的动态切换与调用

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在微服务架构中利用 Taotoken 实现多模型 API 的动态切换与调用 面向后端架构师或开发负责人&#xff0c;当微服务系统需要集成多种…...