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连再起飞吧

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

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

相关文章

Electron介绍

前言 相信很多的前端小伙伴都想过一个问题,web技术是否可以用于开发桌面应用。答案当然是可以的,Electron框架就是其中的一种解决方案。 Electron介绍 Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 Electron 并不是一门新的…

FreeRTOS——互斥信号量知识总结及其实战

1互斥信号量的概念 1)互斥信号量:是一个拥有优先级继承的二值信号量,在同步的应用中二值信号量最适合。互斥信号量适合用于那些需要互斥访问的应用中! 2)优先级继承:当一个互斥信号量正在被一个低优先级的…

python统计分析——直方图(df.hist)

使用dataframe.hist()或series.hist()函数绘制直方图 import numpy as np import pandas as pd from matplotlib import pyplot as plt.dfpd.DataFrame(data{type:[A,A,A,A,A,A,A,A,A,A,B,B,B,B,B,B,B,B,B,B],value:[2,3,3,4,4,4,4,5,5,6,5,6,6,7,7,7,7,8,8,9] }) serpd.Serie…

conda虚拟环境搭建和打包,删除,移动等全流程及相关问题汇总

私人笔记无偿分享,更多内容请访问:链接:https://pan.baidu.com/s/19mS5N9XJ_AotF20kUwSA3w?pwdp5kx 提取码:p5kx 复制这段内容后打开百度网盘手机App,操作更方便哦 4.4. anaconda虚拟环境搭建: 网址&am…

Java中的SPI机制

Java中的SPI(Service Provider Interface)机制是一种服务发现机制。它允许服务提供者在运行时被发现和加载,而不是在编译时。这种机制主要用于实现解耦,使得接口的定义与实现可以独立变化,增强了系统的可扩展性和可替换…

[PyTorch][chapter 9][李宏毅深度学习][CNN]

前言: 卷积神经网络(Convolutional Neural Networks)是一种深度学习模型或类似于人工神经网络的多层感知器,常用来分析视觉图像。卷积神经网络的创始人是着名的计算机科学家Yann LeCun,目前在Facebook工作,…

小样本学习介绍(超详细)

小样本学习介绍 本文首先介绍了什么是小样本学习,其次介绍了为什么小样本学习的很多文章都采用元学习的方法。目的是通过通俗的解释更加清楚的介绍小样本学习是什么,适合初学者的入门。当然,以下更多的是自己的思考,欢迎交流。 …

莫比乌斯函数

积性函数定义 若gcd(p,q)1,有f(p*q)f(p)*f(q),则f(x)是积性函数 其中规定f(1)1,对于积性函数有:所有的积性函数都可以用筛法求出 常见的积性函数有欧拉函数和莫比乌斯函数 筛法求莫比乌斯函数 const int N 1e9 5; const int …

用开源大语言模型开发的智能对话机器人初版原型验证

用开源大语言模型开发的智能对话机器人初版原型验证 0. 背景1. 初版检证效果展示2. 验证效果总结 0. 背景 同事要想做一个智能对话机器人,特别的需求有有些几点, 通过预置提示词(包括确认事项),让大语言模型用会话式…

OpenAI ChatGPT-4开发笔记2024-02:Chat之text completion

API而已 大模型封装在库里,库放在服务器上,服务器放在微软的云上。我们能做的,仅仅是通过API这个小小的缝隙,窥探ai的奥妙。从程序员的角度而言,水平的高低,就体现在对openai的这几个api的理解程度上。 申…

【springboot+vue项目(零)】开发项目经验积累(处理问题)

一、VUEElement UI (一)elementui下拉框默认值不是对应中文问题 v-model绑定的值必须是字符串,才会显示默认选中对应中文,如果是数字,则显示数字,修改为: handleOpenAddDialog() {this.dialogT…

vue-动态高亮效果

个人练习&#xff0c;仅供参考 实现如下效果&#xff1a;点击某块&#xff0c;某块变成其他颜色。 具体实现代码&#xff1a; 上边&#xff1a; <template><div><h3 style"color: #f69">动态高亮效果</h3><hr> <!-- 对象 -->…

SwiftUI之深入解析如何使用新地图框架MapKit

一、前言 一旦将 App 目标更新到 iOS 17&#xff0c;Xcode 会将任何使用旧的 Map 初始化器的用法标记为已弃用&#xff1a; 会有警告提示&#xff1a;init coordinate region 已在 iOS 17 中弃用。请改用带有 MapContentBuilder 参数的地图初始化器。在 iOS 17 中&#xff0c;…

Java-replaceAll()同时替换多个字符

今天复现了raplaceAll&#xff08;&#xff09;的用法&#xff0c;但是通常都是对一种字符进行替换&#xff0c;我就在想有没有操作可以一次性替换多个不同的字符&#xff0c;百度一搜&#xff0c;果然有。具体情况如下 首先是替换字的 String str1 "小明&#xff0c;小…

案例091:基于微信小程序的农场驿站平台的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

Redis (三)

1、redis复制 简单的概括就是主从复制&#xff0c;master以写为主&#xff0c;Slave以读为主&#xff0c;当master数据发生变化的时候&#xff0c;自动将更新的数据异步同步到其他的slave是数据库。 使用这种机制的话&#xff0c;可以做到读写分离&#xff0c;可以减轻主机负担…

14.两数之和

题目 class Solution {public int[] twoSum(int[] nums, int target) {int[] ret {-1,-1};for(int i0;i<nums.length;i) {for(int ji1;j<nums.length;j) {if(nums[i] nums[j] target) {ret[0] i;ret[1] j;}}}return ret;} }

uniapp 无限级树形结构面包屑、单选-多选、搜索、移除功能插件,基于【虚拟列表】高性能渲染海量数据,加入动态高度、缓冲区

hyq-tree-vtw 无限级树形结构面包屑、单选-多选、搜索、移除功能 示例项目 单选-user 单选-任意一项 多选-关联下级 多选-任意一项 已选择数据弹框 说明 本插件需要使用uni-popup、uni-transition用于已选择数据弹框&#xff0c;因此需要有这些依赖,请自行导入本插件基于【虚…

企业培训系统开发:构建灵活高效的学习平台

企业培训系统的开发在当今数字化时代是至关重要的。本文将介绍一些关键技术和代码示例&#xff0c;以帮助您构建一个灵活、高效的企业培训系统。 1. 技术选型 在开始企业培训系统的开发之前&#xff0c;首先需要选择合适的技术栈。以下是一个基本的技术选型示例&#xff1a;…