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

SpringBoot 集成Mybatis

SpringBoot集成第三方技术,一般都分为导坐标,改配置,写代码三个步骤。

集成Mybatis也类似,新建一个SpringBoot项目。修改:pom.xml文件。

一、导入坐标

<!--druid-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version>
</dependency>
<!--mybatis-->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>
<!--mysql-->
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope>
</dependency>
<!--sqlserver-->
<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><scope>runtime</scope>
</dependency>
<!--lombok-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency>

druid:数据库连接池,也可以用其他的。

mybatis:mybatis包。

mysql:mysql数据库驱动。(根据数据库实际情况引用)

sqlserver:sqlserver数据库驱动。(根据数据库实际情况引用)

lombok:简化实体类开发。

二、修改配置

修改application.yml文件,增加:

spring:
#数据源配置datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: "jdbc:mysql://【IP】:3306/【database】"username: "【用户名】"password: "【密码】"type: com.alibaba.druid.pool.DruidDataSource # 数据库连接池配置#Mybatis
mybatis:mapper-locations: classpath:mapper/*.xml  type-aliases-package: com.qingshan.mode

mapper-locations: 定义mapper位置。

type-aliases-package: 为了在 Mapper 对应的 XML 文件中可以直接使用类名,而不用使用全限定的类名。与下文的实体类所在包名对应。

三、编写代码

1.实体类:User.java,注意包名com.qingshan.mode,与上面的 type-aliases-package 对应。

package com.qingshan.model;
import lombok.Data;@Data
public class User {private int id;private String name;
}

2.数据层:UserMapper.java(注意:使用注解Mapper)

package com.qingshan.mapper;import com.qingshan.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;@Mapper
public interface UserMapper {//无参数查询List<User> getAll();//单条件查询User getById(int id);
}

3.业务层:

3.1 先定义个接口。(注意:使用注解Repository)

package com.qingshan.service;import com.qingshan.model.User;
import org.springframework.stereotype.Repository;@Repository
public interface UserService {User getById(int id);
}

3.2 实现接口(注意:使用注解Service、Transactional)

package com.qingshan.service.impl;import com.qingshan.mapper.UserMapper;
import com.qingshan.model.User;
import com.qingshan.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;@Service
@Transactional
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMaper;@Overridepublic User getById(int id) {return userMaper.getById(id);}
}

4.在web层使用,通过AutoWired注入。

package com.qingshan.web;import com.qingshan.service.UserService; 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("/")
public class HomeController {@Autowiredprivate UserService userService;@GetMapping("/")public String index() {var user = userService.getById(1);System.out.println(user);return "index";}
}

相关文章:

SpringBoot 集成Mybatis

SpringBoot集成第三方技术&#xff0c;一般都分为导坐标&#xff0c;改配置&#xff0c;写代码三个步骤。 集成Mybatis也类似&#xff0c;新建一个SpringBoot项目。修改&#xff1a;pom.xml文件。 一、导入坐标 <!--druid--> <dependency><groupId>com.al…...

C语言-atoi()库函数的模拟实现

文章目录 前言一、atoi()库函数的介绍及使用1.1 atoi()库函数介绍1.2 atoi()库函数使用 二、atoi()库函数的模拟实现2.1 函数设计2.2 函数实现思路2.3 具体实现2.4 测试 总结 前言 本篇文章介绍c语言中库函数atoi()的使用&#xff0c;以及模拟实现库函数。 一、atoi()库函数的…...

定时监测服务器磁盘是否超过阈值,超过就删除docker 镜像

达到指定百分比 删除镜像脚本 df -h 查找到 内存占用信息 &#xff0c;得到的 文件系统名称是 overlay的&#xff0c;Use% 达到70就进行删除docker 镜像 #!/bin/bash# 设置磁盘使用阈值 THRESHOLD70# 获取 overlay 文件系统的磁盘使用百分比 DISK_USAGES$(df -h | grep overl…...

UDP聊天室

服务器端 #include <myhead.h>#define SER_IP "192.168.124.38" #define SER_PORT 8888 #define RBUFSIZE 128 #define WBUFSIZE 128typedef struct node{char usrName[20];struct sockaddr_in cli_sockaddr;struct node* next; }node, *node_p;node_p create…...

LLM多模态——GPT-4o改变人机交互的多模式 AI 模型应用

1. 概述 OpenAI 发布了迄今为止最新、最先进的语言模型 – GPT-4o也称为“全“ 模型。这一革命性的人工智能系统代表了一次巨大的飞跃&#xff0c;其能力模糊了人类和人工智能之间的界限。 GPT-4o 的核心在于其原生的多模式特性&#xff0c;使其能够无缝处理和生成文本、音频…...

安卓手机APP开发__蓝牙功能概述

安卓手机&#xff21;&#xff30;&#xff30;开发&#xff3f;&#xff3f;蓝牙功能概述 目录 概述 基本内容 关键的类和接口 概述 安卓平台支持了蓝牙网络栈&#xff0c;它允许一个设备和其它的蓝牙设备进行无线的交换数据。 &#xff21;&#xff30;&#xff30;的框架…...

get和post的区别,二者是幂等的吗?

一、什么是幂等 所谓幂等性通俗的将就是一次请求和多次请求同一个资源产生相同的副作用。 维基百科定义&#xff1a;幂等&#xff08;idempotent、idempotence&#xff09;是一个数学与计算机学概念&#xff0c;常见于抽象代数中。 在编程中一个幂等操作的特点是其任意多次执…...

农场--Kruskal应用--c++

【题目要求】 农场里有一些奶牛&#xff0c;作为食物的草料不够了。农场主需要去别的农场借草料。该地区有N (2 < N < 2,000) 个农场&#xff0c;农场名称用数字N标识&#xff0c;农场之间的道路是双向的&#xff0c;一共有M (1 < M < 10,000)条道路&#xff0c;单…...

【Crypto】Rabbit

文章目录 一、Rabbit解题感悟 一、Rabbit 题目提示很明显是Rabbit加密&#xff0c;直接解 小小flag&#xff0c;拿下&#xff01; 解题感悟 提示的太明显了...

IRFB3207PBF TO-220 N沟道75V/180A 直插MOSFET场效应管

英飞凌&#xff08;Infineon&#xff09;的 IRFB3207PBF 是一款高性能的 N 沟道 MOSFET&#xff0c;适用于多种电子设备和系统中的高侧开关应用。以下是 IRFB3207PBF 的一些典型应用场景&#xff1a; 1. 电源管理&#xff1a;在电源管理系统中&#xff0c;IRFB3207PBF 可以作为…...

基于单张图片快速生成Metahuman数字人(模型贴图绑定)的工作流演示

基于单张图片快速生成Metahuman数字人&#xff08;模型贴图绑定&#xff09;的工作流演示 MetahumanModeler, 是我基于facebuilder以及metahuman的理解开发而成&#xff0c;插件可以基于单张图片生成metahuman拓扑结构的面部3d模型&#xff0c;同时生成对应的面部的贴图&#…...

MySQL数据库下的Explain命令深度解析

Explain是一个非常有的命令&#xff0c;可以用来获取关于查询执行计划的信息&#xff0c;以及如何解释输出。Explain命令是查看查询优化器如何决定执行查询的主要方法。这个功能有一定的局限性&#xff0c;并不总是会说出真相&#xff0c;但是它的输出是可以获取的最好信息&…...

防火墙技术基础篇:基于IP地址的转发策略

防火墙技术基础篇&#xff1a;基于IP地址的转发策略的应用场景及实现 什么是基于IP地址的转发策略&#xff1f; 基于IP地址的转发策略是一种网络管理方法&#xff0c;它允许根据目标IP地址来选择数据包的转发路径。这种策略比传统的基于目的地地址的路由更灵活&#xff0c;因…...

OpenFeign快速入门 替代RestTemplate

1.引入依赖 <!--openFeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--负载均衡器--><dependency><groupId>org.spr…...

自动化测试--利用pytest实现整条业务链路测试

​ 概述 前面一章讲解了单个接口的测试&#xff0c;但是实际项目中&#xff0c;因为权限和登录状态的限制&#xff0c;大部分接口没办法直接访问到&#xff0c;这时候我们想访问到一个系统的接口&#xff0c;就需要模拟用户登录拿到用户的token和所拥有的权限之后再将这些信息…...

学习其他推理判断

学习其他推理判断 1.类比推理1.1语义关系1.2逻辑关系1.3 语法关系2.定义判断3.翻译推理3.1前推后:A→B3.2后推前:B→A3.3推理规则4.组合排列5.日常结论6.逻辑论证6.1削弱题型6.2加强题型7.原因解释1.类比推理 类比推理:给出一组相关的词,通过观察分析,在备选答案中找出一组…...

Centos7环境下MySQL5.7.38 安装开源审计插件 mysql-audit

MySQL安装开源审计插件 mysql-audit MySQL 5.7.38安装审计插件 mysql-audit安装MySQL1.查看Linux服务器版本和glibc版本2.根据自己的系统下载对应的MySQL版本&#xff0c;由于mysql-audit并不支持所有版本的MySQL&#xff0c;所以在确定MySQL版本之前请注意下插件支持的MySQL版…...

基于深度学习的表情识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着人工智能技术的快速发展&#xff0c;表情识别成为了人机交互领域的一个研究热点。表情识别技术旨…...

Debug-010-git stash的用法及使用场景

问题原因&#xff1a; 其实也不是最近&#xff0c;就是之前就碰到过这个问题&#xff0c;那就是我正在新分支开发新功能&#xff0c;开发程度还没有到可以commit的程度&#xff0c;我不想提交(因为有些功能没有完全实现&#xff0c;而且没有自测的话很容易有问题&#xff0c;提…...

RustGUI学习(iced/iced_aw)之扩展小部件(二十五):如何使用tab部件来创建tab多页面切换?

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述 这是本专栏的第二十五篇,主要讲述tab页面切换部件的使用,会结…...

Windows平台苹果USB网络共享驱动自动化部署方案

Windows平台苹果USB网络共享驱动自动化部署方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mirrors/ap/Apple-Mob…...

AI专著撰写神器来袭!一键生成20万字专著,附带专业框架和低查重保障!

写学术专著的挑战与AI工具助力 写学术专著是一项挑战&#xff0c;不仅考验学术能力&#xff0c;也对心理承受力提出了要求。与团队合作的论文写作不同&#xff0c;专著通常是独立完成的过程。从选题、框架搭建到具体内容的撰写与修改&#xff0c;每个环节都需要作者亲自去完成…...

DLSS版本管理器:5分钟掌握游戏性能优化终极指南

DLSS版本管理器&#xff1a;5分钟掌握游戏性能优化终极指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾因游戏帧数不稳定而烦恼&#xff1f;是否想体验最新DLSS技术带来的性能提升却不知从何入手&#xff…...

AI-Shoujo HF Patch完全指南:从技术架构到高级应用

AI-Shoujo HF Patch完全指南&#xff1a;从技术架构到高级应用 【免费下载链接】AI-HF_Patch Automatically translate, uncensor and update AI-Shoujo! 项目地址: https://gitcode.com/gh_mirrors/ai/AI-HF_Patch AI-Shoujo HF Patch是一款专为AI-Shoujo游戏设计的模块…...

还有人记得这种古老的语言吗?知道的没几个

前两天偶然看到一个熟悉又陌生的词汇&#xff0c; cobol&#xff0c;瞬间又勾起了我多年前的记忆&#xff0c;不知道还有多少人记得这种古老的语言&#xff0c;用过它的应该更是寥寥无几吧&#xff01;今天来回忆杀。 COBOL&#xff08;Common Business-Oriented Language&…...

Frida-server魔改实战:Android native层反调试对抗七步法

1. 这不是“绕过检测”&#xff0c;而是让frida-server从“被识别对象”变成“系统一部分”在安卓逆向和安全测试一线干了十多年&#xff0c;我见过太多人把Frida检测对抗理解成一场猫鼠游戏&#xff1a;App加个检测逻辑&#xff0c;测试方就写个绕过脚本&#xff1b;检测逻辑升…...

告别CNN局部视野:用UNETR的Transformer编码器搞定三维医学图像分割(附PyTorch+MONAI实战)

突破CNN局限&#xff1a;UNETR在三维医学图像分割中的Transformer实践指南 医学图像分割一直是计算机辅助诊断系统中的核心环节&#xff0c;从肿瘤定位到器官轮廓勾画&#xff0c;精准的分割结果直接影响后续分析的可靠性。传统基于CNN的方法虽然在2D图像处理中表现出色&#x…...

LERF技术解析:基于NeRF与CLIP的3D场景语言查询与语义分割

1. 项目概述&#xff1a;当NeRF遇见自然语言最近在三维重建和生成领域&#xff0c;一个名为LERF&#xff08;Language Embedded Radiance Fields&#xff09;的技术组合引起了不小的关注。简单来说&#xff0c;它做了一件听起来很科幻的事&#xff1a;你给一段文字描述&#xf…...

非标自动化设计实战:用亚德客气爪和真空吸盘搞定不规则工件抓取(附选型速查表)

非标自动化设计实战&#xff1a;亚德客气爪与真空吸盘在复杂工件抓取中的工程决策 在非标自动化设备设计领域&#xff0c;工件抓取方案的确定往往是项目成败的关键节点。面对形状不规则、材质特殊的工件——可能是表面粗糙的铸件、易碎的玻璃制品或是带有曲面的复合材料——工程…...

《Sysinternals实战指南》进程和诊断工具学习笔记(8.24):Handle——谁占着不放?句柄泄漏排查、强制解锁与检索技巧

&#x1f525;个人主页&#xff1a;杨利杰YJlio❄️个人专栏&#xff1a;《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》&#x1f31f; 让复杂的事情更…...