自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 收藏
  • 关注

原创 idea利用JRebel插件,无需重启,实现Spring Boot项目热重载,节省开发时间和精力!

翻译过来的意思是:JRebel 是一款提高开发效率的工具,允许开发者立即重新加载代码更改。它跳过了在Java开发中常见的重新构建、重启和重新部署循环。JRebel 能够让开发者在相同的时间内完成更多工作,并且在编码时能够保持状态。JRebel 支持绝大多数真实世界的企业级 Java 技术栈,并且易于安装到现有的开发环境中。XRebel 是一款用于Java开发的性能工具,为开发者提供实时性能洞察,帮助他们更快、更早地了解和解决潜在问题,在开发阶段进行优化。

2023-12-26 10:50:03 2372

原创 PY信号和槽

在使用PyQt进行图形用户界面(GUI)开发时,信号和槽机制是一个核心概念。信号和槽为对象之间的数据传递提供了一种灵活且高效的方式,使得程序能够在特定事件发生时自动执行相应的操作。本文将通过示例详细介绍信号和槽的基本原理、信号与槽的绑定方法,以及如何利用PyQt的预定义槽函数来实现窗口控制功能。1.信号和槽简介信号和槽机制是 QT 的核心机制,应用于对象之间的通信●信号和槽是用来在对象间传递数据的方法。

2024-08-27 10:00:32 454

原创 熟悉python函数

函数(function)是程序非常重要的组成部分,是计算机执行命令的单元;所谓函数,就是把 具有独立功能的代码块 组织为一个整体,在需要的时候 调用;使用函数可以提高编写的效率以及代码的重用定义函数 —— 在函数中编写代码,实现功能调用函数 —— 执行编写的代码def 函数名():函数封装的代码def是英文define的缩写;函数名的命名规则和变量的命名规则要保持一致实现# 定义函数# 调用函数# 定义函数def 函数名(参数1, 参数2):函数代码# 调用函数。

2024-08-27 09:54:49 403

原创 熟悉python基本语法

在学习编程的过程中,掌握 Python 语言的基本概念和语法是至关重要的。Python 作为一门简单易学且功能强大的编程语言,广泛应用于各个领域。从变量的定义到条件判断,再到循环操作,这些都是编写高效代码的基础。在本文中,我们将介绍 Python 的注释、变量、数据类型以及常见的控制结构,帮助你打好编程基础,轻松应对各种编程挑战。变量名 = 变量值# 定义整型变量age = 30# 定义浮点类型变量# 定义布尔类型变量b = True# 定义字符串类型变量name = '张三'可以通过。

2024-08-26 09:53:19 937

原创 PYQT上位机开发--安装python环境

Python 环境安装看起来可能有些复杂,但只要按照几个简单的步骤操作,很快就能搞定。在这篇文章中,我会带你一步步地完成从下载 Python 到配置好开发环境的过程。无论你是编程新手还是想要优化现有的设置,这些内容都会帮助你快速上手。完成这些步骤后,你的 Python 开发环境就算是搭建好了!现在,你可以开始编写自己的第一个 Python 程序,或者进一步探索 VSCode 的各种插件功能。如果在设置过程中遇到任何问题,不要担心,随时可以重新尝试或者查阅相关文档。祝你在 Python 开发的旅程中一切顺利。

2024-08-26 09:44:55 812

原创 ARM32开发--CRC循环冗余校验

在上面的案例中,我们是将数据传输给硬件计算单元去计算,但是芯片默认只支持32位的结果输出。但是在日常开发中,我们使用16位或者8位的情况非常多,所以我们无法直接使用硬件CRC,这个时候,咱们就得使用软件CRC自己来计算。通常,我们进行数据的传输都是使用字节进行传输的,所以在以下的案例中,我们的数据都是按照1字节的方式进行计算。通过下图,我们可以看到两端所计算的结果是相同的,说明数据在通讯的过程中,数据是正确的。如果通讯的过程中,数据传错了,哪怕是错一位,最终计算出来的结果都是不一致的。

2024-06-20 09:28:50 1461

原创 LVGL开发教程-FreeRTOS中的LVGL

在嵌入式系统开发中,使用LVGL(LittlevGL)库可以轻松实现现代化的图形用户界面(GUI)。移植LVGL到特定的硬件平台是一项关键任务,需要遵循一系列重要步骤以确保库能够正确运行并充分发挥其功能。本文将介绍在LVGL移植过程中的关键步骤,帮助开发者快速上手并成功将LVGL集成到自定义的嵌入式项目中。LVGL的移植过程涉及几个关键步骤,包括初始化LVGL核心、配置屏幕和输入设备驱动、以及确保LVGL正常运行所需的心跳维持和任务处理。

2024-06-20 08:22:55 2462

原创 LVGL开发教程-Flex(弹性布局)

Flexbox布局在现代界面设计中扮演着重要角色,特别是在响应式和动态布局方面。LVGL(LittlevGL)作为一个轻量级图形库,通过其强大的Flex布局功能,使得用户能够轻松地管理和排列界面元素。本文将介绍如何在LVGL中利用Flexbox来创建灵活且适应性强的界面布局,涵盖了常用的方法、代码实现示例以及对齐方式的详细讨论。Flexbox简称Flex,可以将项目排列成行或列,处理环绕,调整项目和轨道之间的间距,处理grow以使项目填充剩余空间的最小/最大宽度和高度。

2024-06-20 08:13:15 986

原创 LVGL开发教程-img图片

在嵌入式系统中,使用LVGL(Light and Versatile Graphics Library)显示静态和动态图像是一个关键的开发任务。这篇文章将详细介绍如何在LVGL中集成和显示图像,无论是静态的二维码还是动态的GIF动画。通过清晰的步骤和示例代码,读者将了解如何将图像资源有效地整合到嵌入式应用程序中,从而增强用户界面的视觉吸引力和功能性。在lvgl中显示一张图片,并不是一件容易的事情,我们首先需要将图片转成C代码,然后再对图片进行声明,最后就是显示它.

2024-06-19 14:39:44 1512

原创 ARM32开发-fat_fs文件系统

通常情况下,嵌入式系统会将 FAT_FS 文件系统与 SDIO 驱动程序集成在一起,形成一个完整的存储子系统。例如,我们想访问“D:/videos/code/lv_port_pc_eclipse-release-v8.3/images”下的aaa.txt文件,在代码中我们其实只需要写"D:/aaa.txt"即可。其中“D:/videos/code/lv_port_pc_eclipse-release-v8.3/images”表示windows上面的路径,我们将它映射为lvgl中的文件盘符为。

2024-06-19 14:37:17 1209

原创 LVGL开发教程-Label文本

在嵌入式系统开发中,文本显示是一项基本而重要的功能。使用 LittlevGL(LVGL)库,我们可以轻松地创建并控制文本标签(Label),实现各种效果,如文本滚动、自定义字体等。本文将介绍如何利用 LVGL 实现文本标签的创建、文本设置、样式定义以及特殊效果如长文本滚动。本文详细讲解了如何利用 LVGL 库在嵌入式设备上实现文本标签的创建和定制化显示。首先,我们学习了如何创建 Label 对象并设置其基本属性,如文本内容、大小和位置。

2024-06-19 09:30:58 1515

原创 LVGL开发教程-lvgl移植流程

define LV_FONT_MONTSERRAT_12 0改为#define LV_FONT_MONTSERRAT_12 1。#define LV_FONT_MONTSERRAT_16 0改为#define LV_FONT_MONTSERRAT_16 1。#define LV_USE_DEMO_MUSIC 0改为#define LV_USE_DEMO_MUSIC 1。在lv_port_disp_init函数中选择一种缓冲模式,注释掉其它两种模式。定义之后,keil添加.c文件和头文件即可。

2024-06-19 08:11:18 1088

原创 LVGL开发教程-objects对象

在嵌入式 GUI 开发中,LVGL(Light and Versatile Graphics Library)是一个强大的工具,它提供了丰富的功能来创建和定制用户界面。其中,样式的应用是使界面看起来整洁和专业的关键。本文将重点介绍如何使用LVGL的样式系统,通过设置对象的尺寸、位置、对齐方式和外观等属性,来实现界面组件的定制化展示。例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

2024-06-19 08:08:13 954

原创 LVGL模拟器-环境搭建

使用MinGW,开发者可以编写和编译与Windows API无关的本地应用程序,这对于跨平台开发和移植代码至Windows平台是非常有用的。MinGW的目标是提供一个轻量级、最小化的GNU工具集,使开发者能够在Windows环境下使用类Unix的工具和编程环境。如果有多个版本的MinGW环境,可以将系统变量Path路径里新版本的MinGW的bin路径放最上边,以保证gcc用的是最新版本。从网盘中下载MinGW之后,解压,然后将它的路径配置到系统的环境变量中。如果GCC配置部分为空,点击GCC方面进行配置。

2024-06-18 19:59:08 1044

原创 VScode开发ARM环境搭建

分别是App,CMSIS,Firmware, 并将响应的文件导入到目录中。分别为Doc,Hardware,User,并将相应的文件导入到目录中。找到本地的.pack文件(可以用everything全局搜索下)添加的文件名称在gd32官网可以下载到。这里我们需要将用到头文件目录都包含进来。指定项目名称,并制定存放路径即可。例如:User中存放的目录。选择Keil_v5的。

2024-06-18 08:10:43 2008

原创 ARM32开发--FreeRTOS-事件组

在嵌入式系统开发中,任务之间的同步和通信是至关重要的。FreeRTOS作为一款开源的实时操作系统,提供了多种机制来实现任务间的有效协调。其中,事件组(Event Group)机制是一种强大的工具,允许任务等待和检测多个事件的状态,并在事件发生时进行及时的通知。通过使用事件组,开发人员可以实现复杂的任务调度和协同工作,提高系统的效率和可靠性。本文将深入探讨FreeRTOS中事件组的基本概念、功能特性以及具体的使用方法。我们将详细介绍如何创建和管理事件组,以及如何利用事件组进行任务间的同步和通信。

2024-06-18 08:08:12 1212

原创 ARM32开发--FreeRTOS-消息队列

基础API如下功能描述创建队列xQueueSend向队列中添加元素从队列中取出元素。

2024-06-17 14:46:27 1022

原创 ARM32开发--FreeRTOS-信号量

知不足而奋进 望远山而前行。

2024-06-17 14:44:34 1426

原创 ARM32开发--FreeRTOS-定时器

在现代计算机系统和嵌入式系统中,定时器是一种常见且重要的工具。它们用于在指定的时间间隔或延迟后执行特定的任务或操作,对于任务调度、超时处理和事件触发等应用场景都有广泛的应用。本次学习将聚焦于FreeRTOS中定时器的使用,包括定时器的创建、启动、停止和删除等操作。通过深入学习和理解这些操作,我们将掌握如何利用FreeRTOS提供的软件定时器功能来实现精确和可靠的时间触发机制。本次学习中,我们深入探讨了FreeRTOS中软件定时器的基本概念和操作流程。

2024-06-17 14:41:25 903

原创 ARM32开发--FreeRTOS-中断管理

本次学习的重点是理解中断的概念及其在嵌入式系统中的应用,特别是在FreeRTOS和ARM Cortex-M架构中的具体实现和配置。通过掌握中断的优先级配置、开启与关闭方法,以及实际代码示例的分析,将帮助您深入理解如何利用中断实现异步事件处理和实时响应,从而提升系统的性能和可靠性。中断概念与作用:中断作为计算机系统中的重要事件驱动机制,能够及时响应外部事件,提高系统的实时性和可靠性。ARM Cortex-M中断优先级:通过中断优先级寄存器进行配置,不同的优先级分组和数值对中断处理的影响。

2024-06-17 14:38:17 845

原创 ARM32开发--FreeRTOS-任务相关机制介绍

在嵌入式系统开发中,理解任务调度机制、临界区概念以及内存管理算法的运作原理至关重要。这些概念不仅是构建高效、可靠系统的基础,也直接影响到系统的实时性、资源利用率和响应能力。本文将深入探讨这些关键技术,并探索它们在实际应用中的运用和优化策略。任务调度机制是实现多任务协作的核心,它通过任务优先级和抢占式调度策略确保系统对高优先级任务的及时响应。通过任务控制块(TCB)管理任务状态和上下文切换,任务可以有效地共享处理器资源,同时保持系统的实时性和稳定性。

2024-06-17 08:40:39 752

原创 ARM32开发--FreeRTOS-任务管理

在嵌入式系统开发中,任务管理是保证系统高效运行的关键之一。FreeRTOS作为一款流行的实时操作系统,提供了丰富的任务管理功能,包括动态和静态任务创建、任务删除、任务挂起与恢复等操作。本文将深入探讨这些任务管理机制及其应用,帮助开发者理解和掌握如何通过FreeRTOS实现灵活的任务管理和调度,以满足不同嵌入式应用的需求。任务管理是实时操作系统中的核心概念之一,合理的任务管理可以有效提升系统的响应速度和资源利用率。

2024-06-17 08:35:21 1160

原创 ARM32开发--GD32移植FreeRTOS

来到FreeRTOS源码目录中,找到。也是目前的最新版本。实现多任务串口打印功能。文件拷贝到项目目录中的。

2024-06-17 08:29:38 1321

原创 HAL库开发--串口

在嵌入式系统开发中,掌握串口通信是至关重要的一环。串口通信作为微控制器与外部设备或其他微控制器之间的主要通信方式,在各种嵌入式应用中起着重要作用。本文将介绍如何通过STM32CubeMX配置串口功能,并掌握串口发送、接收以及使用DMA进行数据传输的方法。同时,我们还将讨论如何配置printf函数,使其能够在串口上输出调试信息,以及如何处理串口接收中断。通过学习这些内容,读者将能够在嵌入式系统开发中更加灵活地应用串口通信功能。

2024-06-15 17:08:27 1892

原创 HAL库开发--第一盏灯

在嵌入式系统开发中,掌握HAL库开发流程、STMCubeMX配置过程以及API的查询和使用方式是非常重要的学习目标。HAL库(Hardware Abstraction Layer)提供了对底层硬件的抽象,使开发者能够更加便捷地访问和控制微控制器的功能。而STMCubeMX作为一款优秀的配置工具,可以帮助开发者快速进行芯片配置和初始化代码生成,加速开发过程。同时,熟练地查询和使用API则能够帮助开发者更加灵活地编写代码,实现各种功能需求。

2024-06-15 17:05:36 1126

原创 ARM32开发--下载&仿真&调试

在嵌入式系统开发的世界里,仿真器和调试器是两个不可或缺的工具,它们帮助开发者跨越从代码编写到硬件运行的鸿沟。特别是在ARM架构的微处理器或微控制器上进行开发时,仿真器和调试器的使用尤为重要。仿真器提供了一个模拟的环境,允许开发者在没有实际硬件的情况下测试和调试代码。而调试器则提供了一种连接到实际硬件的方式,使开发者能够实时地观察和操控运行中的程序。本文将详细介绍ARM仿真器和调试器的基本概念、特点以及它们在嵌入式系统开发中的应用。

2024-06-15 16:55:59 1306

原创 ARM32开发--电源管理单元

在嵌入式系统中,有效的电池管理和低功耗模式对于延长设备电池寿命至关重要。电池管理单元(PMU)及其相关的电源域和省电模式是实现这一目标的关键组成部分。本文将深入探讨PMU的功能、ARM32中的电源域结构,以及几种常见的省电模式。此外,我们还将了解如何通过在不同省电模式之间切换来优化系统功耗,同时保持系统的响应能力和功能完整性。在ARM架构中,WFI(Wait For Interrupt)和 WFE(Wait For Event)是用于使处理器进入低功耗状态的指令。

2024-06-15 16:52:56 1811 6

原创 ARM32开发--SPI Flash

在嵌入式系统开发中,对于存储器的选择和驱动的开发至关重要。W25Q128作为一种常见的串行闪存器件,通过SPI接口提供高速的数据读写和擦除功能,广泛应用于嵌入式设备、存储设备以及网络设备中。本文将介绍如何进行W25Q128的移植与驱动开发学习,帮助开发者更好地理解和应用这一关键的存储器组件。W25Q128是一种常见的串行闪存器件,它采用SPI(Serial Peripheral Interface)接口协议,具有高速读写和擦除功能,可用于存储和读取数据。

2024-06-14 08:18:36 1054

原创 ARM32开发--存储器介绍

在现代计算机系统中,存储器扮演着至关重要的角色,不仅影响着数据的存取速度和稳定性,还直接关系到计算机系统的性能和应用场景的选择。存储器根据数据持久性可以分为易失性和非易失性两大类,每种类型都具备各自独特的特性和优势,为计算机科技的发展提供了多样化的解决方案。存储器的分类基于其在断电后数据是否丢失来划分为易失性存储器和非易失性存储器。易失性存储器如RAM,虽然读写速度快,但断电即丢失,适合作为临时数据存储。

2024-06-14 08:15:35 1045

原创 ARM32开发--IIC屏幕案例(详解)

掌握移植方法掌握解决移植失败的思路掌握调试方式

2024-06-13 14:59:51 903

原创 ARM32开发--IIC原理

在现代消费电子和工业电子领域,各种类型的芯片如微控制器、传感器和存储器等,需要快速且可靠地进行数据交互。为了满足这一需求,I2C(Inter-Integrated Circuit)协议应运而生。I2C协议由飞利浦(现恩智浦半导体)公司开发,它利用两根线(时钟线和数据线)在多个设备之间传输数据,并且支持设备间的地址识别,从而实现设备间的互联互通。本文将深入探讨I2C通讯的原理、信号传输过程以及软件和硬件实现方法。首先,我们将详细介绍I2C通讯的基本规则和流程,包括数据传输的开始、停止和等待响应的过程。

2024-06-13 08:48:00 1524 2

原创 ARM32开发--WDGT看门狗

嵌入式系统在如今的科技发展中扮演着越来越重要的角色,而其中保障系统稳定性与可靠性的机制显得尤为关键。本文将深入探讨看门狗(Watchdog)的概念、工作原理以及在 ARM 架构下的两种主要类型:独立看门狗和窗口看门狗。通过学习本文,您将对嵌入式系统中的看门狗有更深入的了解,从而提升系统的稳定性与可靠性。看门狗(Watchdog)是一种用于监视系统运行情况的硬件设备,本质就是一个倒计时计数器。它能定时检测系统是否正常运行,并在系统出现故障或者卡死时自动重启系统,从而保证系统的稳定性和可靠性。

2024-06-13 08:42:56 1423

原创 ARM32开发--RTC内置实时时钟

在嵌入式系统开发中,实时时钟(RTC)是至关重要的组件,它提供了准确的日期和时间信息,为各种应用场景提供了时间基准。本文将深入探讨RTC的设计原理和初始化过程,帮助您理解RTC在GD32F407上的实现方式以及如何进行初始化、配置和读取时间等操作。RTC是实时时钟(Real-Time Clock)的缩写。它是一种硬件模块或芯片,用于提供准确的日期和时间信息。GD32F407上有RTC的外设,它提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能。

2024-06-12 15:53:52 1823 1

原创 ARM32开发--DMA

CPU(Central Processing Unit,中央处理单元)是计算机系统中的核心部件,也被称为处理器。它是计算机的大脑,负责执行指令、处理数据以及控制计算机的各种操作。CPU通常由多个核心组成,每个核心可以独立执行指令,从而提高计算机的处理能力。CPU执行过程中,通过总线,到SRAM中取数据CPU将取的数据,按照逻辑处理顺序进行执行逻辑中用到了外设部分,CPU会将对应的数据通过总线传递给外设这里的每一份数据都是这么个操作流程。DMA三种传输方式● 存储器到外设;● 外设到存储器;

2024-06-12 08:14:50 1316

原创 ARM32开发--PWM通道输出

加强掌握PWM开发流程理解定时器与通道的关系掌握多通道配置策略掌握定时器查询方式掌握代码抽取优化策略高级定时器只有TIMER0和TIMER7支持。由于扩展板上的高级定时器没有对应的LED,我们可以使用跳线的方式,将TIMER0CH0对应的PE8引脚,短接到PD8(LED1)上,通过观察LED1的亮灭,了解是否正确输出。

2024-06-11 20:30:45 1007

原创 ARM32开发--PWM与通用定时器

在微控制器开发中,理解和掌握PWM(脉宽调制)技术以及与定时器的关系是至关重要的。PWM技术可以广泛应用于工业自动化、电机控制、LED调光等领域,通过改变信号的脉冲宽度来控制电路输出。本文将介绍PWM原理、开发流程,以及如何通过定时器实现PWM功能。通过学习本文,您将掌握通用定时器开发流程,理解周期、分频系数、周期计数、分频计数等概念,以及掌握分频计数、周期计数和占空比的计算策略。本文详细介绍了PWM技术以及与定时器的关系,通过示例代码演示了在ARM32系列芯片中如何实现PWM功能。

2024-06-11 20:24:39 1115

原创 ARM32开发--中断优先级Priority

在嵌入式系统开发中,对中断控制和优先级管理是至关重要的。通过学习NVIC中断控制器、优先级概念以及优先级分组概念,我们可以更好地理解和掌握嵌入式设备中的中断处理机制。本次学习将重点关注中断的优先级设置与管理,通过实际案例测试不同配置下的中断执行顺序,以加深对中断优先级调度的理解。通过本次学习和案例测试,我们深入了解了NVIC中断控制器、抢占优先级、响应优先级以及优先级分组的概念和作用。在实际应用中,合理设置中断优先级可以确保系统对中断的响应和处理有序进行,提高系统的稳定性和性能。

2024-06-11 14:39:03 1395

原创 ARM32开发--外部中断EXTI

在许多嵌入式系统中,包括STM32和GD32等,EXTI模块通常由多个输入线、边沿检测电路、触发选择寄存器、软件中断事件寄存器、请求挂起寄存器、中断屏蔽寄存器、事件屏蔽寄存器等部分组成,可以实现对外部中断和事件的高效检测和处理。tick++;再将这个tick时间对外,外面使用者就可以获得时间计数了硬件触发软件触发硬件触发机制主要是针对外部触发了芯片的引脚,造成引脚的电平发生变化,从而导致中断产生。

2024-06-11 08:12:24 1253

原创 ARM32开发--串口库封装(初级)

在嵌入式软件开发中,封装抽取流程和抽取封装策略是非常重要的技术,能够提高代码的复用性和可维护性。本文将介绍如何在文件系统中创建库目录,并通过keil工程中创建分组管理库的方式,实现串口功能的封装和抽取。通过具体的步骤和代码示例,帮助读者掌握封装抽取流程和策略。初始化及发送功能定义// 发送1个byte数据// 发送多个byte数据// 发送字符串 (结尾标记\0)接收回调定义// 功能开关配置// 收到串口0数据,回调函数#endif...#endif...通过宏定义做开关。

2024-06-11 08:07:56 777

原创 ARM32开发--串口通讯--USART通信原理

通信在现代社会中扮演着至关重要的角色,不论是在个人生活中的手机通话、电子邮件的发送,还是在工业自动化领域的数据传输等,都离不开通信技术的支持。串行通信和并行通信作为数据传输的两种基本方式,在实际应用中各有优劣,而常见的串行通信接口、同步通信和异步通信、单工和双工、波特率和比特率等概念也是我们在通信领域中需要了解的重要知识点。通过本文的介绍,我们对串行通信和并行通信有了更深入的了解。串行通信通过逐位传输数据来实现信息的传输,适用于短距离、低速率的数据传输;

2024-06-07 14:33:11 1049

java项目学生管理系统后端

Java 项目学生管理系统是一个用 Java 编写的管理学生信息的系统。它通常用于学校、教育机构或培训中心等场景,旨在方便管理和操作学生的基本信息,包括学生的姓名、年龄、性别、成绩等数据。 学生管理系统的代码资源包括以下主要组件和功能: 实体类 (Entity Class):用于表示学生对象的类,包含学生的基本信息属性,如学号、姓名、性别、年龄、成绩等。 数据访问对象 (Data Access Object, DAO):用于与数据库进行交互的类,提供对学生信息的增删改查等操作。通过 DAO 类,可以实现将学生信息存储到数据库中,或从数据库中读取学生信息。 服务层 (Service Layer):包含学生信息的业务逻辑处理,例如学生的增删改查操作以及其他与学生信息相关的业务逻辑。服务层的功能是对外提供接口,供其他模块调用。 控制器 (Controller):用于接收用户的请求,调用服务层的相关方法进行处理,并返回结果给用户。控制器负责将用户的请求与服务层进行适配和转发。 用户界面 (User Interface):学生管理系统通常有一个用户界面,用户可以通过该界面进行学生信息

2023-12-07

空空如也

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

TA关注的人

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