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

SpringBoot学习(三)-整合JDBC、Druid、MyBatis

注:此为笔者学习狂神说SpringBoot的笔记,其中包含个人的笔记和理解,仅做学习笔记之用,更多详细资讯请出门左拐B站:狂神说!!!

一、整合JDBC使用(理解)

在这里插入图片描述

创建项目
在这里插入图片描述
在这里插入图片描述

勾选依赖启动器
在这里插入图片描述

查看依赖
在这里插入图片描述

1、配置连接数据库的信息

  • 选择数据库
    在这里插入图片描述

  • 挑选mysql版本

在这里插入图片描述

2、调试数据源

  • 测试数据源
    在这里插入图片描述

  • 获得数据库的连接,查看连接

在这里插入图片描述

  • 修改时区,否则会出现版本报错
  • 假如时区报错,增加一个时区配置就ok了:serverTimezone=UTC

在这里插入图片描述

可以运行看看,有没报错

3、查看源码,理解底层配置信息

在这里插入图片描述
在这里插入图片描述

  • 套路:有properties,就会有某某AutoCofiguration

在这里插入图片描述

  • 要进去java文件里面看,而不是进类里面看

在这里插入图片描述

4、springboot已经配置好许多模板bean,拿来即用 CRUD

在这里插入图片描述

  • 看jar包

在这里插入图片描述

在这里插入图片描述

  • 使用jdbcTemplate模板,需要的配置信息

在这里插入图片描述

  • 导入springboot-web依赖

在这里插入图片描述

  • 点进去看一下JDBCTemplate的方法

在这里插入图片描述

  • 点开结构看一下

在这里插入图片描述

1)测试数据库的操作
①查询数据库信息

在这里插入图片描述

  • 注:只是修改数据库,不需要重启项目,数据库才是最重要的

在这里插入图片描述

②增加数据库信息

在增加信息的时候,jdbc可以直接写sql,不需要传值

在这里插入图片描述

springboot已经把很多操作封装成jdbcTemplate了,很多步骤可以省略了

③更新数据库消息

在这里插入图片描述

点进去看一下update

在这里插入图片描述

在这里插入图片描述

  • 方法1:直接在sql语句上写数据
  • 方法2:原生的jdbc执行sql语句和传递参数的方法,来写数据

在这里插入图片描述

④删除数据库信息

在这里插入图片描述

效果:链改接参数就可以了

在这里插入图片描述

再查看一下源码:
查看下内置导入的包

在这里插入图片描述

去配置文件修改即可在这里插入图片描述

自定义配置的要求:

在这里插入图片描述

  • spring.datasource.type=???

二、整合Druid数据源

1、了解数据源

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • d导入依赖Druid数据源,用最新的,报错再降级
  • 看源码,提升快
  • 看别人的包,理解一下,看看需要配什么等等
  • filter:用来监控的
    在这里插入图片描述

2、更改数据源

在这里插入图片描述

  • 测试:

在这里插入图片描述

3、添加Druid的默认配置

在这里插入图片描述

  • 在博客中找找

1)导入log4j依赖

在这里插入图片描述

4、测试Druid数据源下的配置功能

  • @Configuration==相当于以前的bean.xml中的配置,现在都简化了

1)实现application.yaml与DruidConfig绑定在一起

  • 将DruidConfig绑定在一个bean上,跟配置文件一起,就能绑上了

  • 如果想使用一些私有化属性,如果不配置的话,私有化属性不会生效

  • 在这里插入图片描述
    在这里插入图片描述

  • 将druidDataSource加入到容器当中,就不需要springboot帮我们加到容器中了

2)后台监控

①配置后台监控

后台监控页面都写好了,直接拿来用就好

在这里插入图片描述

在这里插入图片描述

  • 后台监控这个ServeletRegistrationBean的方法,了解方法

    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 设置初始化参数setInitParameters()

在这里插入图片描述

  • 看源码,需要什么,给什么

在这里插入图片描述

②添加具体配置

在这里插入图片描述

在这里插入图片描述

③访问后台监控

在这里插入图片描述

在这里插入图片描述

测试一下sql:

在这里插入图片描述

在这里插入图片描述

④小结:想注册什么,new就完事了

在这里插入图片描述

⑤注册过滤请求的

在这里插入图片描述

加入最重要的东西

在这里插入图片描述

三、整合mybatis

1、准备工作

1)创建新项目

在这里插入图片描述

2)勾选依赖

  • JDBC API
  • Spring Web
  • MySQL driver

在这里插入图片描述

3)浏览官方文档

4)导入依赖

在这里插入图片描述

5)配置全局配置文件

在这里插入图片描述

6)测试连接效果

在这里插入图片描述

在这里插入图片描述

2、使用mybatis连接MySQL

1)连接上mybatis

在这里插入图片描述

2)构造实体类

在这里插入图片描述

在这里插入图片描述

构造mapper接口类(mapper层=dao层)

  • 扫描接口下的包的方式

第一种接口扫描包的方式:直接在包的类名上扫描,加个@Mapper

在这里插入图片描述

第二种方式:在启动类里启动扫描具体的包名

在这里插入图片描述

在这里插入图片描述

  • 之前的spring里面,接口map或者dao都会有对应的mapper.xml文件在同一个文件夹里面
  • 现在,统一在resource里创建mapper,在里面创建.xml文件(写在resource里面,就不能用class来访问了,不能将注解和class同时使用)

3、构造对应的mapper.xml文件

1)去官方找文档,复制.xml的基本格式

在这里插入图片描述

在这里插入图片描述

  • mapper namespace=“指定的mapper文件名”

在这里插入图片描述

4、在全局配置文件中,这和mybatis

在这里插入图片描述

5、构造controller层

  • controller在后端(dao)与前端(页面)之间

在这里插入图片描述

在这里插入图片描述

  • 由于SpringBoot集成了事务,所以修改数据库等操作,不需要用户添加事务处理了
    基本流程:链接→controller→mapper层(mapper接口→mapper.xml)→数据库

将数据库连接添加到员工管理系统

  • 全局配置文件的东西一定要一样

在这里插入图片描述

  • 刚写的项目里面没有service层,直接是,controller调用mapper层(dao层)的
  • 表单传入的属性会封装成一个对象,把属性添加表单就可
  • 实体类默认无参构造,无参构造可以在属性范围内随机的生成随机属性的对象,如果有需要的话。
  • 有参构造,一定要完整的属性,实体类才能封装成对象。
  • 除了可以用dao/mapper.xml以外,还可以使用@注解的方式(在接口的方法上面添加对应注解)

SpringBoot学习(三)-整合JDBC、Druid、MyBatis 开发的学习笔记到此完结,笔者归纳、创作不易,大佬们给个3连再起飞吧

相关文章:

SpringBoot学习(三)-整合JDBC、Druid、MyBatis

注:此为笔者学习狂神说SpringBoot的笔记,其中包含个人的笔记和理解,仅做学习笔记之用,更多详细资讯请出门左拐B站:狂神说!!! 一、整合JDBC使用(理解) 创建项目 勾选依赖启动器 查看依赖 …...

如何选择合适的语音呼叫中心?

市场上不同的语音呼叫中心提供商,都有其独特的优势和不足。企业在选择语音呼叫中心服务公司时,主要考虑以下因素:服务质量、价格、技术支持、客户支持等。 首先,服务质量是选择语音呼叫中心需关注的最重要因素之一。 为确保语音…...

使用qtquick调用python程序

一. 内容简介 使用qtquick调用python程序 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3pytorch 安装pytorch(http://t.csdnimg.cn/GVP23) 2.4QT 5.14.1 新版QT6.4,,6.5在线安装经常失败,而5.9版本又无法编译64位程序&#xf…...

【Axure高保真原型】树形表格_多选效果

今天和大家分享树形表格_多选效果的原型模板,点击树的箭头可以展开或者收起子节点,点击多选按钮可以选中或取消选择该行以及子级行内容,同时反选父级行内容,父级行内容能根据子级选中的数量自动反选,包括全选、半选和未…...

【Filament】加载obj和fbx模型

1 前言 3D 模型的常用格式主要有 obj、fbx、gltf 等,Filament 中的 filamesh.exe 工具可以将 obj、fbx 格式转换为 filamesh 格式,然后再加载显示。对于 gltf 格式模型,可以通过 ModelViewer 加载显示,这不在本文的讨论范围内。 1…...

[USACO04OPEN] The Cow Lineup

题目描述 约翰的 N ( 1 ≤ N ≤ 100000 ) N ( 1 \leq N \leq 100000 ) N(1≤N≤100000) 只奶牛站成了一列。每只奶牛都写有一个号牌,表示她的品种,号牌上的号码在 1 … K &#x…...

软件工具集合

代码文档自动生成工具: Doxygen download 软件分析工具: perf gdb flamegraph 代码量统计: vscode插件:VS Code Counter 代码备注 vsocde插件: Line Note...

C#利用openvino部署PP-TinyPose人体姿态识别

【官方框架地址】 github.com/PaddlePaddle/PaddleDetection 【算法介绍】 关键点检测算法往往需要部署在轻量化、边缘端设备上,因此长期以来都存在一个难题:精度高、速度则慢、算法体积也随之增加。而PP-TinyPose的出世彻底打破了这个僵局&#xff0c…...

MindSpore Serving与TGI框架 の 对比

一、MindSpore Serving MindSpore Serving是一款轻量级、高性能的服务工具,帮助用户在生产环境中高效部署在线推理服务。 使用MindSpore完成模型训练>导出MindSpore模型,即可使用MindSpore Serving创建该模型的推理服务。 MindSpore Serving包含以…...

两阶段提交协议三阶段提交协议

两阶段提交协议 分布式事务是指会涉及到操作多个数据库的事务,在分布式系统中,各个节点之间在物理上相互独立,通过网络进行沟通和协调。 XA 就是 X/Open DTP 定义的交易中间件与数据库之间的接口规范(即接口函数),交易…...

6-Docker Compose-tomcat application(指定官方镜像)

1.创建docker-compose.yml文件,添加如下内容并保存 vim docker-compose.yml [root@centos79 ~]# cat docker-compose.yml #yml文件 version: 3 #版本号,默认为3 services:tomcat-ztj: #定…...

宝塔安装的imagemagick不能用,必须自己手动安装

1 安装 用composer安装 2 宝塔安装的imagemagick不能用,必须自己手动安装(3.4.3版本 php 7.3) 1 步骤: wget https://pecl.php.net/get/imagick-3.4.3.tgz tar -zxf imagick-3.4.3.tgz cd imagick-3.4.3 /www/server/php/73…...

解决在test以外的目录下导入junit无效

以上引用来自src目录下的文件,可以看到,和junit有关的导入都飘红,但明明junit已经被正确导入进了项目中。 再看右侧的Maven的依赖下方,junit的右边有一个很不起眼的(test) 这是因为junit作为测试框架,可能包含仅适用于…...

docker 在线安装mysql 8.0.21版本

1、拉取mysql 8.0.21版本镜像 2、查看镜像 docker images 3、在宿主机 /usr/local/mysql 下的 conf 文件夹下,创建 my.cnf 文件,并编辑内容 [mysql] default-character-setutf8 [client] port3306 default-character-setutf8 [mysqld] port3306 se…...

WPF DatePicker与Calendar的使用和样式修改

什么是DatePicker,Calendar Calendar:日历(显示年月日视图控件)DatePicker:日期选择器(是一个更小的控件,点击控件时才会弹出一个日历) Calendar使用 常用属性 DisplayMode&#…...

从0开始python学习-40.通过正则表达式/json进行接口关联

目录 1. 正则表达式:使用re库(需安装-pip install re),只能提取字符串的数据。 1.1 re.seach:提取一个值,得到的是一个对象,通过下标group(1)取值,如果没有匹配到值则返回None 1.…...

【React系列】高阶组件

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 高阶组件 1.1. 认识高阶组件 什么是高阶组件呢?相信很多同学都听说过,也用过 高阶函数&…...

听GPT 讲Rust源代码--src/tools(38)

File: rust/src/tools/clippy/clippy_dev/src/lib.rs rust/src/tools/clippy/clippy_dev/src/lib.rs文件是Clippy开发工具的入口文件,其作用是提供Clippy开发过程中所需的功能和工具。Clippy是一个Rust代码的静态分析工具,用于提供各种有用的代码规范、编…...

.NET C# 如何获取object对象的数据

如何获取object对象的数据 在DAL层,一般会封装一些返回值,返回的类型就会为object ,但是需要其中的值进行判断 public static object SaveFileIns(string filepath){return new { path pathlist, file_name fileNamelist, Message "…...

使用IDEA创建使用 JDK8 的 2.x.x 版本的 Spring Boot 项目以及 Spring Boot 项目如何修改JDK版本

目录 一、在阿里云上官网上创建项目 二、将 IDEA 中创建项目的源地址修改为阿里云官网 三、创建 3.x.x 的项目之后修改配置降低至 2.7.x 版本和使用 JDK8(修改 Spring Boot 的 JDK 版本同理) 从上面的 Spring Boot 官网的截图中可以发现,自…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

HTML 列表、表格、表单

1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...

2.3 物理层设备

在这个视频中&#xff0c;我们要学习工作在物理层的两种网络设备&#xff0c;分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间&#xff0c;需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质&#xff0c;假设A节点要给…...

深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙

WebGL&#xff1a;在浏览器中解锁3D世界的魔法钥匙 引言&#xff1a;网页的边界正在消失 在数字化浪潮的推动下&#xff0c;网页早已不再是静态信息的展示窗口。如今&#xff0c;我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室&#xff0c;甚至沉浸式的V…...

从零手写Java版本的LSM Tree (一):LSM Tree 概述

&#x1f525; 推荐一个高质量的Java LSM Tree开源项目&#xff01; https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree&#xff0c;专为高并发写入场景设计。 核心亮点&#xff1a; ⚡ 极致性能&#xff1a;写入速度超…...

Java中栈的多种实现类详解

Java中栈的多种实现类详解&#xff1a;Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...

八、【ESP32开发全栈指南:UDP客户端】

1. 环境准备 安装ESP-IDF v4.4 (官方指南)确保Python 3.7 和Git已安装 2. 创建项目 idf.py create-project udp_client cd udp_client3. 完整优化代码 (main/main.c) #include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h&…...