当前位置: 首页 > 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 官网的截图中可以发现,自…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...