自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (6)
  • 收藏
  • 关注

原创 动态切换数据源原理详解,以及Spring Boot + MyBatis-Plus 在实际开发中的快速切换方法

在一个实际的企业工程项目当中,我们的数据往往会来源于不同的数据库服务器,所以在调用数据访问层或者业务层的方法时,我们要指定本次访问的数据来源于哪个数据源,最好的方式就是通过注解的方式,直接切换当前方法的数据来源。所幸的是,MyBatis Plus基于Spring Boot项目开发了一个能够快速切换数据源的注解,在介绍它之前,我们先来了解一下动态切换数据源的原理,同时也可以让没有导入Mybatis Plus的小伙伴也能通过注解实现数据源的切换。

2024-03-27 14:47:11 849

原创 【JAVA开发小技巧】Properties类读取properties、yml配置文件中的内容

当我们将项目部署到服务器上之后,我们不能专门地对代码中的常量进行修改,除非更新部署新的项目,但是我们的项目在上次更新之后,很有可能在其它方面也做了更新升级,这些更新的内容只有在通过测试之后才有资格部署到生产环境下。所以我们要想办法,解除常量与项目代码的耦合度,解决办法就是,当我们将项目部署到生产环境之后,能将项目中的常量进行配置化的管理。也就是说,项目中的常量最好是来源于配置文件的读取,这样我们只要修改配置文件即可修改项目中的常量。

2024-02-20 10:46:45 1097

原创 【JAVA开发小技巧】后端实现文件的写入、压缩、下载、删除

对于文件进行管理,是Java后端程序员最基础也是最重要的职责之一,虽然是基础加重点,但是还是有一部分的程序员没有好好地掌握Java的文件管理,这篇文章将总结整理一下开发过程中常见的文件操作,不过并没有做到面面俱到的整理,大家可以根据自己的需求按图索骥。我们知道文件是存储在磁盘当中的,而我们读写文件的操作是在内存中完成的,而文件流就是在内存和磁盘之间读写文件的信息通道。压缩文件的处理过程多了一个压缩过程,牵涉到对文件夹的操作,需要我们递归处理,以及删除文件夹时需要完成递归操作。

2024-02-10 10:24:57 1105 1

原创 【JAVA开发小技巧】使用enum枚举类规范化代码

阿里巴巴Java开发手册中推荐,如果常量类中变量值仅在一个范围内变化,且带有名称之外的延伸属性, 建议定义为枚举类。使用枚举类可以使我们的代码更加规范且美观。

2024-02-05 10:20:08 451 1

原创 【JAVA开发小技巧】利用线程池创建多线程,执行并发操作,提高程序运行效率

在项目中,常常可以遇到一些可并发执行的操作,比如要做一个热搜系统,在用户搜索信息的同时,将用户的搜索记录插入到数据库当中;再比如用户在对数据做增删改操作的数据,系统同时记录用户的操作到数据库日志表当中,都是可以并发执行的过程。这时候我们就可以用多线程的方式实现并发,提高程序的运行效率。线程池中有许多准备运行的线程,每当为线程池提供一个Runnable,就会有一个线程调用run方法。当run方法退出时,这个线程不会死亡,而是留在池中准备为下一个请求提供服务。

2024-01-03 21:20:46 464 1

原创 【JAVA开发小技巧】JDBC批量获取数据库名、字段名、字段类型和注释信息

当我们在项目中遇到以下需求:1.给定数据库,遍历获取出数据库下的数据表名;2.给定数据表,遍历获取出表中的所有字段,对应的字段名、字段注释、字段类型等信息;使用JAVA原装的JDBC就能简单地实现以上的需求。大家想必也用过EasyCode这个十分简单方便的插件,其实它的底层就是用原装的JDBC来实现的。

2024-01-03 10:06:15 765 1

原创 【JAVA开发小技巧】MybatisPlus字段自动填充赋值

项目中经常会遇到一些数据,每次都使用相同的方式填充,例如记录的创建时间,更新时间等。我们可以使用MyBatis Plus的自动填充功能,完成这些字段的赋值工作。

2023-12-28 11:57:29 509 1

原创 《野火STM32F407 霸天虎版》学习笔记——第 39 章 DAC—输出正弦波

该章节并未出现在野火STM32F407的视频教程当中,所以只能通过开发手册自习,博主也在此记下该章节的笔记。在了解DAC之前,读者们最好先了解一下ADC模块的功能和原理,ADC模块是有在野火的视频教程中的,所以就不在本博主的主页中赘述。DAC 为数字/模拟转换模块,它的作用就是把输入的数字编码,转换成对应的模拟电压输出。

2023-06-18 09:20:09 1348

原创 《野火STM32F407 霸天虎版》学习笔记——第 26 章 串行 FLASH 文件系统 FatFs

上一章我们已经写好了 SPI Flash 芯片的驱动函数,我们可以非常方便的在 SPI Flash 芯片上读写数据。本章我们来看看如何使用文件系统做到对SPI Flash当中的数据进行存储和管理。FatFs 是面向小型嵌入式系统的一种通用的 FAT 文件系统。它完全是由 ANSIC 语言编写并且完全独立于底层的 I/O 介质。

2023-06-15 11:03:44 393

原创 《野火STM32F407 霸天虎版》学习笔记——第 25 章 SPI—读写串行 FLASH

SPI 协议是一个高速的全双工通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。本章节让我们了解一下SPI实现STM32芯片与FLASH之间进行串行通信的原理。SPI通讯连接方式:(1)SS:从设备选择信号线,常称为片选信号线。(2)SCK:时钟信号线,用于通讯数据同步。它由通讯主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不一样,如 STM32 的 SPI 时钟频率最大为 fpclk/2,两个设备之间通讯时,通讯速率受限于低速设备。

2023-06-14 10:51:39 958

原创 《野火STM32F407 霸天虎版》学习笔记——第 24 章 I2C—读写 EEPROM

I2C作为一个十分常用的通讯协议,被广泛地用于系统内多个集成电路之间的通讯。这章我们就来学习一下使用I2C协议实现STM32芯片对EEPROM存储设备进行读写操作。它的物理层有如下特点:(1) 它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中,可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。(2) 一个 I2C 总线只使用两条总线线路,一条双向串行数据线 (SDA) ,一条串行时钟线 (SCL)。数。

2023-06-13 17:36:56 491 2

原创 《野火STM32F407 霸天虎版》学习笔记——了解GPIO

GPIO是STM32中最基础也是最重要的模块,对于几乎每一个模块都要涉及到GPIO的配置,只有了解好GPIO的每个要素,才能配置好相应的GPIO端口。GPIO 是通用输入输出端口的简称,简单来说就是 STM32 可控制的引脚,STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。

2023-06-13 14:42:06 428 1

原创 《野火STM32F407 霸天虎版》学习笔记——第17章、第18章 中断概览与EXTI外部中断

STM32 中断非常强大,每个外设都可以产生中断。本章对于STM32的中断及具有代表性的EXTI中段做了总结,EXTI即外部中断控制器,管理了控制器的 23 个中断线。由于异常和中断并没有太大的区别,所以接下来提到的异常即中断,中断即异常。NVIC是嵌套向量中断控制器,控制着整个芯片中断相关的功能,是内核里面的一个外设。// 中断使能寄存器 3 uint32_t RESERVED0 [ 24 ];// 中断清除寄存器 5 uint32_t RSERVED1 [ 24 ];

2023-06-09 17:21:55 255

原创 《野火STM32F407 霸天虎版》学习笔记——第10章 初识STM32固件库

博主在自学嵌入式开发工程师的学习道路上,先是学完了C语言和51单片机,现在马不停蹄地开始了学习STM32的过程。入手的STM32单片机是STM32F407这款芯片,这是一个资深的嵌入式开发工程师推荐的芯片,并且学习了野火的相关教程。一开始凭着51的基础,博主感觉STM32还比较上手,但到了固件库编程方面,便学起来有些吃力,于是从本章开始,博主将会对在STM32学习过程中比较吃力的点做一个记录。

2023-06-08 17:19:20 607 1

原创 《C指针编程之道》笔记——9.1指针与const、volatile

在C语言当中,我们经常要使用const来修饰变量,防止变量被随机修改。而在一些场景下,const经常要用来修饰指针变量,但C语言的新手往往会将const与指针之间的关系搞混,本节就来总结一下const与指针之间的各个关系,以及volatile在C语言当中的使用。

2023-04-29 15:02:55 130

原创 《C指针编程之道》笔记——6.3文件操作函数汇总

据我所知,大部分C语言的初学者在使用C语言的场景都是在刷网站上的算法题,而网站上的算法题基本上是不会使用文件相关的操作的,所以初学者往往会忽略掉对于C语言对于文件的操作指令。本节将对C语言的文件操作指令做一个汇总。

2023-04-28 14:33:09 155

原创 《C指针编程之道》笔记——2.6聚焦字符串的指针

博主最近打算往嵌入式软件开发方向转,于是开始自学了C语言。由于博主本来就有一定的C语言基础,所以开始学习《C指针编程之道》这本书。这本书主要围绕了C语言当中常见的指针问题展开了讨论,并且还在书中设置了一些小项目供读者练习,十分适合有一定C语言基础,想要进阶学习C语言的小伙伴学习。本博客主要是为了记录一下,博主在学习《C指针编程之道》这本书的过程当中,遇到的一些让博主觉得值得小伙伴们一起引起注意的篇章以及需要手动实现的小项目,本篇讲的是2.6节聚集字符串的指针。

2023-04-27 16:27:19 59 1

原创 自学深度学习Pytorch——day02

梯度:所有的偏微分的向量梯度的性质:1.梯度的长度可以反映函数变化的趋势2.梯度的方向可以表示函数增长的方向梯度与优化问题:鞍点:一个点,对于一个维度取极大值,对于另一个维度取极小值影响优化性能的因素:初始状态、学习率、动量(逃出局部极小值的方法)

2023-04-20 16:41:46 65 1

原创 自学深度学习Pytorch——day01

动态图:编好程序即可执行;代码编程简单、调试直观静态图:先搭建计算图,后运行;允许编译器进行优化2002年Torch基于Lua语言2016.19发布PyTorch 0.1,2018.12发布PyTorch 1.0基于CAFFE2后端GoogleTheano->Tensorflow 1->Tensorflow 2+KerasFacebookTorch7->PyTorch->PyTorch+caffe分类任务:输出值为离散值的概率值回归任务:输出值为连续值样本:属性+标签(x)模型:f(x) = w

2023-04-17 15:33:04 104

原创 动手学深度学习笔记第一章——深度学习简介

随着时间的流逝,神经网络的生物学解决被稀释,但仍保留了这个名字。时至今日,绝大多数神经网络都包括以下的原则:·交替使用线性处理单元与非线性处理单元,它们经常被称为“层”。·使用链式法则(即反向传播)来更新网络的参数。

2023-04-15 10:40:41 52

sql数据库实践实验七

1、使用不带参数的存储过程 (1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系 (1)创建一个存储过程my_procsex,使其能够查询“学生表”中男学生或女学生(作为输入参数)的学号、姓名、性别、年龄和所在院系

2020-11-07

sql数据库实践实验六

1、使用触发器 (1)创建一个触发器trig_update,返回对“学生表”进行更新操作后,被更新的记录条数 (3)修改触发器trig_update,除返回被更新的记录条数外,再返回学生的所有基本信息 SQL语句如下:

2020-11-07

sql数据库实践实验五

1、在学生表上面创建下列CHECK约束 (1)创建入学日期约束“Enter_University_date_rule”,假定该学校于1923年4月30日创建。要求:入学日期必须大于等于学校创建日期,并且小于等于当前日期

2020-11-07

sql数据库实践之实验四

在实验三建立的学生管理数据库StudentDB中完成如下查询(SQL语句及结果截屏): (1)列出软件2班女同学的名单 (2)列出2002年元旦前注册的学生名单

2020-11-07

数据库实践报告实验三

(1)主数据文件逻辑名studata,初始大小为3MB,最大容量为50MB,文件增长方式为每次增5MB,存储路径为D盘的SQL目录; (2)日志文件逻辑名stulog,日志文件初始大小为1MB,最大容量为10MB,增长方式为文件的10%增长,存放路径为D盘的SQL目录下。建立该数据库的SQL语句为:

2020-11-07

Internet网络服务安装与配置实验

a)掌握WEB服务器的安装和基本配置,建立一个新的web服务器,建立简单index.htm,进行网站主页的设置 b)建立一FTP站点并完成基本配置 c)要求所搭建的服务器均能通过本机和网络中的计算机进行访问

2020-11-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除