SpringBoot学习(5)(springboot整合mybatis)

目录

1、整合mybatis基本介绍

(1)spring整合mybatis

(2)springboot整合mybatis

2、案例(根据用户id,返回用户所有信息)

(1)新建数据库连接、数据库、表。插入值

(2)去pom文件,引入所需要的起步依赖

(3)完成数据源信息的配置(去application.yml配置文件)

(4)开始写代码,创建实体类user​编辑

(5)创建子包(mapper)并new一个接口UserMapper,这里面写sql语句

(6)创建子包(service),里面创建接口UserService与实现类

(7)创建子包(controller),创建一个类UserController

(8)启动运行springboot工程,去浏览器测试是否查询得到id对应的用户信息

 3、总结与分析

(1)yml配置信息读取分析

(2)springboot整合mybatis整体做了啥?


1、整合mybatis基本介绍

(1)spring整合mybatis
  • 首先需要引入依赖(mybatis依赖、mybatis与spring整合的依赖) ——>配置一些bean对象——>bean对象配置完毕 ——>spring整合mybatis真正完成


(2)springboot整合mybatis
  • 而当使用springboot整合mybatis时,就不需要引入mybatis依赖、mybatis与spring整合的依赖。需要引入的是mybatis的起步依赖(相当于把之前的所有依赖引入进来了) ——>而且同时起步依赖,会自动的把一些bean对象注入到Ioc容器中 ——>也就是上面spring整合mybatis时的bean对象就不需要去手动的配置
  • 如果想让mybatis正确的去操作数据库,还需要在yml配置文件中,写一些数据库的相关配置(包括数据库的驱动、数据库的连接、用户名、密码)——>配置完毕——>可以去编写Controller、Service、Mapper

2、案例(根据用户id,返回用户所有信息)

(我这里直接用IDEA提供的内置的数据库可视化操作插件)

(1)新建数据库连接、数据库、表。插入值
create table user
(id     int UNSIGNED auto_increment comment 'ID',name   varchar(100)     null comment '姓名',age    tinyint UNSIGNED null comment '年龄',gender tinyint UNSIGNED null comment '性别',phone  varchar(11)      null comment '手机号',constraint user_pkprimary key (id)
)comment '用户表';
insert into user(id, name, age, gender, phone)
VALUES (null,'白眉鹰王',55,'1',18800000000),(null,'金毛狮王',45,'1',18800000001),(null,'青翼蝠王',38,'1',18800000002),(null,'紫衫龙王',42,'2',18800000003),(null,'光明左使',37,'1',18800000004),(null,'光明右使',48,'1',18800000005)

(2)去pom文件,引入所需要的起步依赖
 <!--添加数据库mysql驱动依赖--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><!--添加mybatis的起步依赖--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency><!--web起步依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

(3)完成数据源信息的配置(去application.yml配置文件)
  • 根据IDEA提示写

  • 继续写配置数据源信息


(4)开始写代码,创建实体类user

(实体类中的变量与数据库里的字段一样)

(5)创建子包(mapper)并new一个接口UserMapper,这里面写sql语句

(记得在类上添加注解:@Mapper)

(6)创建子包(service),里面创建接口UserService与实现类

(记得在类上添加注解:@Service)将当前对象交给Ioc容器


  • 这里要注入UserMapper对象

(记得添加注解:@Autowired)

(7)创建子包(controller),创建一个类UserController

(记得在类上添加注解:@RestController)

(记得在方法上添加注解:@RequestMapping

  • 这里要注入UserService对象

(记得添加注解:@Autowired)

(8)启动运行springboot工程,去浏览器测试是否查询得到id对应的用户信息


(浏览器输入:localhost:8080/findById?id=2)还可以测试其它的,查看查询返回的结果

 3、总结与分析

(1)yml配置信息读取分析
  • 我们只书写了配置信息,并没有去读取,是SpringBoot工程自动的读取了
  • 大部分情况,书写的配置信息只管写,一般不管读,只有个别情况会去读取配置文件里的自定义的配置信息

(2)springboot整合mybatis整体做了啥?
  • pom文件引入了起步依赖
  • yml文件中书写简单的配置信息
  • 而繁琐的bean对象不用去声明了(很方便)

 

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

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

相关文章

探索MongoDB的Python之钥:pymongo的魔力

文章目录 探索MongoDB的Python之钥&#xff1a;pymongo的魔力背景&#xff1a;为什么选择pymongo&#xff1f;简介&#xff1a;pymongo是什么&#xff1f;安装&#xff1a;如何将pymongo纳入你的项目&#xff1f;基础用法&#xff1a;五个核心函数介绍1. 连接到MongoDB2. 选择数…

【Spring Boot 3】【Web】自定义过滤器

【Spring Boot 3】【Web】自定义过滤器 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费…

【数据分享】2000-2022年我国省市县三级的逐日O3数据(免费获取\excel\shp格式)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000-2022年的省市县三级的逐日PM2.5数据、2013-2022年的省市县三级的逐日CO数据、2013-2022年的省市县三级的逐日SO2数据、2008-2022年我国省市县三级的逐日NO2数据和2000-2022年我国省市县三级…

ubuntu20.04(wsl2)测试 arcface 人脸识别(计算特征向量)

1. 参考博客和代码、模型仓库&#xff1a; 1.1. 【C随记】collect2: error: ld returned 1 exit status错误分析与解决 1.2. Visual Studio 2022新建 cmake 工程测试 tensorRT 自带样例 sampleOnnxMNIST 1.3.报错&#xff1a;ModuleNotFoundError: No module named ‘ten…

基于tesseract实现文档OCR识别

导入环境 导入必要的库 numpy: 用于处理数值计算。 argparse: 用于处理命令行参数。 cv2: OpenCV库&#xff0c;用于图像处理。 import numpy as np import argparse import cv2设置命令行参数 ap argparse.ArgumentParser() ap.add_argument("-i", "--imag…

视频集中存储智能边缘计算网关软硬一体机智能边缘计算网关应用场景

在信息化飞速发展的今天&#xff0c;数据处理的速度和效率直接影响到各行各业的运作和发展。传统的云计算模式虽然强大&#xff0c;但在面对实时性和带宽要求越来越高的应用场景时&#xff0c;往往显得力不从心。此时&#xff0c;智能边缘计算网关的出现&#xff0c;为我们带来…

长效静态代理IP推荐:天启代理IP的优势与应用

在如今这个互联网的时代&#xff0c;代理IP已成为许多网络活动的必备工具。相比动态代理IP&#xff0c;长效静态代理IP以其稳定性和长时间有效性&#xff0c;成为了许多用户的首选。今天&#xff0c;我们将深入探讨长效静态代理IP的优势&#xff0c;并重点推荐天启代理IP。 什…

Docker compose 安装 ELK

1. 简介 方案概述 我们使用 Filebeat 作为日志收集器&#xff0c;接入到 Redis 队列&#xff0c;然后消费队列中的日志数据流转到 Logstash 中进行解析处理&#xff0c;最后输出到 Elasticsearch 中&#xff0c;再由 Kibana 展示到页面上。我们采用 Elasticsearch 3 节点集群…

web前端-网页

一、网页 1.网页 网站是指在因特网上根据一定的规则&#xff0c;使用 HTML等制作的用于展示特定内容相关的网页集合。 网页是网站中的一“页”&#xff0c;通常是 HTML格式的文件&#xff0c;它要通过浏览器来阅读。 网页是构成网站的基本元素,它通常由图片、链接、文字、声…

婚宴时扫码查桌号

如何通过关键词查询信息&#xff1f; 在婚宴这一喜庆的时刻&#xff0c;确保每位宾客都能迅速找到自己的座位是至关重要的。为了使这一过程更加流畅和高效&#xff0c;我们特别引入了扫码查桌号服务。以下是详细的操作指南&#xff0c;帮助您快速掌握如何使用此服务&#xff0c…

缓存:浅谈双写导致的数据一致性问题

从理论上来说&#xff0c;给缓存设置过期时间&#xff0c;是保证最终一致性的解决方案。这种方案下&#xff0c;我们对存入缓存的数据设置过期时间&#xff0c;所有的写操作以数据库为准&#xff0c;对缓存操作只是尽最大努力更新即可。也就是说如果数据库写成功&#xff0c;缓…

C++11新增特性:列表初始化(std::initializer_list) decltype、auto、nullptr、范围for

C11新增特性&#xff1a;列表初始化&#xff08;std::initializer_list&#xff09;& decltype、auto、nullptr、范围for 一、C11新增统一初始化方式1.1 新增方式1.2 初始化容器底层原理&#xff08;std::initializer_list&#xff09; 二、新增声明2.1 decltype2.3 auto &…

网络安全服务基础Windows--第10节-FTP主动与被动模式

概述 将某台计算机中的⽂件通过⽹络传送到可能相距很远的另⼀台计算机中&#xff0c;是⼀项基本的⽹络应⽤&#xff0c;即⽂件传送。 ⽂件传送协议FTP &#xff08;File Transfer Protocol&#xff09;是因特⽹上使⽤得最⼴泛的⽂件传送协议。 FTP是⼀个⽼早的⽹络协议&…

VMware 虚拟化平台部分问题和优化措施汇总

本文整理记录了VMware 虚拟化平台部分问题和优化措施。 1、vCLS虚拟机无法启动&#xff1a; 修改办法&#xff0c;参照本人下文&#xff1a; vCLS报错处理&#xff08;缺少功能“MWAIT”&#xff0c;没有与虚拟机兼容的主机&#xff09; 2、优化存储卷的路径选择策略 ESXi…

可以进行非机动车违停、人员聚集、临街摆摊、垃圾满溢、烟雾火情等城市治理场景的智能识别的智慧城管开源了

智慧城管视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。 基于深度学习技…

Redis 篇-深入了解查询缓存与缓存所带来的问题(读写不一致、缓存穿透、缓存雪崩、缓存击穿)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 本章目录 1.0 什么是缓存 2.0 项目中具体如何添加缓存 3.0 添加缓存后所带来的问题 3.1 读写不一致问题 3.1.1 缓存更新策略 3.1.2 具体实现缓存与数据库的双写一致 3.2 缓存穿…

vue2———组件

一个简单的组件 组件进行注册并使用 结果&#xff1a; 在进行对组件的学习时遇见一些问题&#xff1a; 1、组件的命名 解决方法&#xff1a; 组件的命名 Vue.js 组件的命名遵循一些最佳实践&#xff0c;这些实践有助于保持代码的清晰和一致性。 多单词命名&#xff1a;Vue 官…

Robotics: computational motion planning 部分笔记—— week 2 Configuration Space 构型空间

基本概念 构型(Configuration)&#xff1a;构型是机器人上所有点的完整描述。它提供了机器人在特定时刻状态的简洁表示。 构型空间(Configuration Space)&#xff1a;也称为C-Space&#xff0c;指的是机器人可以到达的所有可能构型的集合。它考虑了空间限制范围和机器人的物理…

期权交易方式和基本策略有哪几种?期权交易要注意什么?

今天带你了解期权交易方式和基本策略有哪几种&#xff1f;期权交易要注意什么&#xff1f;期权&#xff0c;作为一种金融衍生品&#xff0c;它赋予了持有人在未来某个时间内购买或出售特定资产的权利&#xff0c;近年来在全球范围内得到了广泛的关注和应用。 期权交易方式 期…

Latex安装--新手教程、遇到的问题

第一个LaTeX文件的编写 1.tex文件&#xff1a;自己创建后缀为.tex的文件 2.在VScode中打开1.tex文件&#xff08;图1&#xff09;&#xff0c;然后双击打开1.tex文件&#xff08;图2&#xff09;&#xff0c;VScode左侧工具栏出现TEX插件&#xff0c;点击TEX即可 3.写第一个1.t…