当前位置: 首页 > 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页面切换部件的使用,会结…...

Axure中文界面终极配置指南:3分钟免费实现Axure RP 9/10/11快速汉化

Axure中文界面终极配置指南&#xff1a;3分钟免费实现Axure RP 9/10/11快速汉化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn …...

告别繁琐:用快马生成openclaw自动化安装脚本,效率提升300%

最近在折腾openclaw这个工具时&#xff0c;发现手动安装过程实在太磨人了。每次都要反复查文档、处理各种依赖报错&#xff0c;光是环境配置就能耗掉大半天。于是琢磨着能不能搞个自动化方案&#xff0c;把安装流程标准化。试了几个方法后&#xff0c;终于在InsCode(快马)平台上…...

Win11 Edge浏览器频繁断网?3分钟搞定IPv6设置(附DNS优化技巧)

Win11 Edge浏览器频繁断网&#xff1f;深度解析IPv6兼容性问题与DNS优化实战 最近不少Win11用户反馈Edge浏览器频繁断网&#xff0c;而其他应用却正常运作。这种看似诡异的网络问题&#xff0c;往往源于IPv6协议栈的兼容性故障。作为微软新一代操作系统与浏览器的组合&#xff…...

Anthropic Skills 解析

Anthropic Skills 解析 基于 anthropics/skills 仓库的完整技术文档 概述 什么是 Skills&#xff1f; Skills&#xff08;技能&#xff09; 是包含指令、脚本和资源的文件夹&#xff0c;Claude 可以动态加载这些内容以提升在特定任务上的表现。Skills 教会 Claude 如何以可重…...

JL杰理AC696N系列开发GPIO使用指南:模式、配置与特殊IO

引言GPIO是嵌入式开发最基础也最容易出问题的部分。拉高拉低看起来简单&#xff0c;但驱动能力不够、上下拉没配对、特殊引脚没处理&#xff0c;经常导致外设工作不正常或者功耗异常。JL杰理AC696N的GPIO功能挺全的&#xff0c;有普通、强、超强三种驱动能力&#xff0c;还支持…...

国内顶级的SEO技术网站有哪些

国内顶级的SEO技术网站有哪些&#xff1f; 在当今互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为每个网站营销者不可忽视的重要环节。国内顶级的SEO技术网站不仅为业内人士提供了宝贵的技术分享和实践经验&#xff0c;还为企业的网站流量优化提供了有…...

OpenClaw安全实践:Qwen3.5-9B本地化部署防止敏感数据泄露

OpenClaw安全实践&#xff1a;Qwen3.5-9B本地化部署防止敏感数据泄露 1. 为什么需要本地化部署&#xff1f; 去年我在处理一份涉及商业机密的财务分析报告时&#xff0c;第一次意识到公有云API的潜在风险。当时使用某知名云服务商的文本分析接口&#xff0c;虽然服务条款承诺…...

Claude Code 宠物彩蛋来袭:/buddy 完整玩法指南(整理了宠物刷取方法,重置并刷到你想要的宠物)

文章目录 📖 介绍 📖 🏡 演示环境 🏡 📒 Claude Code /buddy 宠物指南 📒 📝 初识 Buddy 🎯 原理解析 🎯 预热窗口期 📝 如何触发 Buddy 🐙 18种宠物图鉴:你的伙伴是哪一位 📝 稀有度系统:1%传说级的诱惑 📝 五维属性:你的宠物是什么性格 📝 成…...

Kandinsky-5.0-I2V-Lite-5s图生视频实战教程:5秒短视频一键生成(RTX4090D友好)

Kandinsky-5.0-I2V-Lite-5s图生视频实战教程&#xff1a;5秒短视频一键生成&#xff08;RTX4090D友好&#xff09; 1. 快速认识Kandinsky-5.0-I2V-Lite-5s Kandinsky-5.0-I2V-Lite-5s是一款专为短视频创作设计的轻量级AI模型。它最大的特点就是简单高效——你只需要准备一张起…...

如何使用hello-uniapp性能监控工具实时掌握应用运行状态

如何使用hello-uniapp性能监控工具实时掌握应用运行状态 【免费下载链接】hello-uniapp uni-app框架演示示例 项目地址: https://gitcode.com/gh_mirrors/he/hello-uniapp hello-uniapp性能监控工具是uni-app框架演示示例中的核心功能模块&#xff0c;它提供了一套完整的…...