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

数据库操作、锁特性

1. DML、DDL和DQL是数据库操作语言的三种主要类型

1.1 DML(Data Manipulation Language)数据操纵语言

  • DML是用于检索、插入、更新和删除数据库中数据的SQL语句。

  • 主要的DML语句包括:

    • SELECT:用于查询数据库中的数据。

    • INSERT:用于向数据库表中插入新数据。

    • UPDATE:用于修改数据库表中的现有数据。

    • DELETE:用于从数据库表中删除数据。

  • DML语句通常不涉及数据库结构的修改。

1.1.1 SELECT

  • 用于查询数据库中的数据,可以结合WHERE子句、GROUP BY子句、HAVING子句和ORDER BY子句等进行复杂的查询。

SELECT column1, column2 FROM table_name WHERE condition;

1.1.2 INSERT

  • 用于向数据库表中插入新的数据行。

INSERT INTO table_name (column1, column2) VALUES (value1, value2);
  • 如果不指定列名,将插入所有列的默认值:

INSERT INTO table_name VALUES (value1, value2);

1.1.3 UPDATE

  • 用于修改数据库表中的现有数据。

UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;

1.1.4 DELETE

  • 用于从数据库表中删除数据。

DELETE FROM table_name WHERE condition;
  • 注意:如果没有WHERE子句,将删除表中的所有行。

1.2 DDL(Data Definition Language)数据定义语言

  • DDL用于定义和管理数据库的结构,如创建、修改和删除数据库对象(如表、索引、视图、触发器等)。

  • 主要的DDL语句包括:

    • CREATE:用于创建新的数据库对象,如表、索引或视图。

    • ALTER:用于修改现有数据库对象的结构。

    • DROP:用于删除数据库对象。

    • TRUNCATE:用于快速删除表中的所有行。

  • DDL语句通常会影响数据库的元数据,并且需要数据库管理员权限。

1.2.1 CREATE:创建新的数据库对象。

  • 创建数据库:

CREATE DATABASE test;
  • 创建表:

CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, position VARCHAR(100), hire_date DATE );
  • 创建索引:

CREATE INDEX idx_lastname ON employees (name);
  • 创建视图:

CREATE VIEW employee_positions AS SELECT name, position FROM employees;
  • 创建触发器:在指定的数据库表上特定事件(如INSERT、UPDATE或DELETE)发生时自动执行。

CREATE TRIGGER before_insert_employee BEFORE INSERT ON employees FOR EACH ROW BEGIN SET NEW.name = CONCAT('Mr/Ms ', NEW.name); END;

注:创建一个名为before_insert_employee的触发器,在employees表中执行插入操作之前,在名字之前加上'Mr/Ms'。

1.2.2 ALTER:修改现有数据库对象的结构。

  • 修改表结构,添加新列:

ALTER TABLE employees ADD COLUMN salary DECIMAL(10, 2);
  • 修改列的数据类型:

ALTER TABLE employees MODIFY COLUMN name VARCHAR(150);
  • 重命名表:

ALTER TABLE employees RENAME TO staff;

1.2.3 DROP:删除数据库对象。

  • 删除表:

DROP TABLE IF EXISTS staff;
  • 删除数据库:

DROP DATABASE IF EXISTS mydatabase;
  • 删除视图:

DROP VIEW IF EXISTS employee_positions;
  • 删除触发器:

DROP TRIGGER IF EXISTS before_insert_employee;

1.2.4 TRUNCATE:快速删除表中的所有行。

  • 快速删除表中的所有行,不记录行删除操作:

TRUNCATE TABLE employees;

1.3 DQL(Data Query Language)数据查询语言

  • DQL是用于查询或检索数据库中数据的SQL语句。

  • DQL实际上主要是SELECT语句,它允许用户指定他们想要检索的数据。

  • DQL语句可以包含多个子句,如WHEREGROUP BYHAVINGORDER BY,以提供更复杂的查询能力。

1.3.1 基本查询

SELECT column1, column2 FROM table_name;

1.3.2 条件查询

SELECT column1, column2 FROM table_name WHERE condition;

1.3.3 分组查询

SELECT column1, COUNT(*) FROM table_name GROUP BY column1;

1.3.4 分组后筛选

SELECT column1, SUM(column2) FROM table_name GROUP BY column1 HAVING SUM(column2) > 100;

1.3.5 排序查询

SELECT column1, column2 FROM table_name ORDER BY column1 ASC, column2 DESC;

1.3.6 聚合查询

SELECT column1, AVG(column2), MAX(column3), MIN(column3), COUNT(*) FROM table_name GROUP BY column1;

1.3.7 联结查询

SELECT a.column1, b.column2 FROM table_name AS a JOIN another_table AS b ON a.common_column = b.common_column;

1.3.8 子查询

SELECT * FROM table_name WHERE column1 IN (SELECT column1 FROM another_table WHERE condition);

2. 简单的示例

2.1 DQL语句关键字执行顺序

  1. FROM

    • 首先确定查询的数据来源,即指定的表或子查询。

  2. JOIN

    1. 接下来执行连接操作,根据JOIN关键字(INNER JOIN, LEFT JOIN, RIGHT JOIN等)将多个表连接起来。

  3. WHERE

    1. 应用WHERE子句的条件过滤数据,只有满足条件的记录才会被保留。

  4. GROUP BY

    1. 将结果集按照GROUP BY子句中的列进行分组。

  5. HAVING

    1. 对分组后的结果应用HAVING子句的条件过滤,类似于WHERE,但是用于过滤分组后的结果。

  6. SELECT

    1. 选择特定的列或计算后的列。

  7. DISTINCT

    1. 如果使用DISTINCT关键字,去除结果中的重复行。

  8. ORDER BY

    1. 对结果集进行排序。

  9. LIMIT(在某些数据库系统中,如MySQL)

    1. 限制返回的结果数量。

  10. OFFSET(与LIMIT一起使用)

    1. 指定从哪一条记录开始返回结果。

2.2 左连接示例

mysql> select * from employees e left join departments d on e.department = d.department_name;
+----+------------+-----------+---------------------------+------------+------------+-----------+---------------+-----------------+
| id | first_name | last_name | email                     | department | hire_date  | salary    | department_id | department_name |
+----+------------+-----------+---------------------------+------------+------------+-----------+---------------+-----------------+
|  1 | John       | Doe       | john.doe@example.com      | Finance    | 2023-01-10 |  70000.00 |             1 | Finance         |
|  2 | Jane       | Smith     | jane.smith@example.com    | IT         | 2023-02-15 |  75000.00 |             3 | IT              |
|  3 | Alice      | Johnson   | alice.johnson@example.com | HR         | 2023-03-20 |  65000.00 |             2 | HR              |
|  4 | Mike       | Brown     | mike.brown@example.com    | Marketing  | 2023-04-25 |  80000.00 |             4 | Marketing       |
|  5 | yang       | rongkai   | 1968497756@qq.com         | IT         | NULL       | 100000.00 |             3 | IT              |
+----+------------+-----------+---------------------------+------------+------------+-----------+---------------+-----------------+
5 rows in set (0.00 sec)mysql> select * from employees e left join departments d on e.department = d.department_name where id = 1;
+----+------------+-----------+----------------------+------------+------------+----------+---------------+-----------------+
| id | first_name | last_name | email                | department | hire_date  | salary   | department_id | department_name |
+----+------------+-----------+----------------------+------------+------------+----------+---------------+-----------------+
|  1 | John       | Doe       | john.doe@example.com | Finance    | 2023-01-10 | 70000.00 |             1 | Finance         |
+----+------------+-----------+----------------------+------------+------------+----------+---------------+-----------------+
1 row in set (0.00 sec)mysql> select * from employees e left join departments d on e.department = d.department_name order by id desc limit 3;
+----+------------+-----------+---------------------------+------------+------------+-----------+---------------+-----------------+
| id | first_name | last_name | email                     | department | hire_date  | salary    | department_id | department_name |
+----+------------+-----------+---------------------------+------------+------------+-----------+---------------+-----------------+
|  5 | yang       | rongkai   | 1968497756@qq.com         | IT         | NULL       | 100000.00 |             3 | IT              |
|  4 | Mike       | Brown     | mike.brown@example.com    | Marketing  | 2023-04-25 |  80000.00 |             4 | Marketing       |
|  3 | Alice      | Johnson   | alice.johnson@example.com | HR         | 2023-03-20 |  65000.00 |             2 | HR              |
+----+------------+-----------+---------------------------+------------+------------+-----------+---------------+-----------------+
3 rows in set (0.00 sec)

注:inner join...on、left join...on、right join...on是一样的写法,主要在于以哪一个表为核心连接。

3. 锁

MySQL中的锁机制是确保数据一致性和隔离性的关键技术,主要分为以下几种类型:

  1. 全局锁

    1. 锁定整个数据库,使其处于只读状态。适用于全库备份等需要确保数据一致性的场景。使用FLUSH TABLES WITH READ LOCK;命令可以获取全局锁。

  2. 表级锁

    1. 对某个表加锁,包括表锁和元数据锁(MDL)。表锁分为读锁(共享锁)和写锁(排他锁)。表级锁是粗粒度的锁,适用于不需要并发操作的场景。

    2. 读锁(共享锁)允许多个事务同时读取数据,而写锁(排他锁)在操作未完成前会阻塞其他读和写操作。

  3. 意向锁(Intention Lock)

    1. 表级锁的一种,标记当前事务对表中行的锁定意图,用于加速表锁和行锁之间的协调。分为意向共享锁(IS)和意向排他锁(IX)。

  4. 行级锁

    1. 每次操作锁住对应的行数据。主要分为记录锁(Record Lock)、间隙锁(Gap Lock)和临键锁(Next-Key Lock)。InnoDB通过行级锁实现了更细粒度的控制,支持更高的并发更新和查询。

    2. 记录锁(Record Lock)针对索引记录的锁定,防止其他事务对特定行进行update和delete。

    3. 间隙锁(Gap Lock)锁定索引记录间隙,确保索引记录间隙不变,防止其他事务在这个间隙进行insert,产生幻读。

    4. 临键锁(Next-Key Lock)结合了记录锁和间隙锁的功能,在RR隔离级别下支持。

  5. 共享锁(S锁)与排他锁(X锁)

    1. 共享锁允许多个事务同时获取,而排他锁则确保同一时间内只有一个事务可以获取。

  6. 乐观锁与悲观锁

    1. 乐观锁认为自己的操作会成功,先尝试执行,失败时再获取锁;悲观锁则认为自己的操作可能不成功,会先获取锁再执行。

  7. 页面锁

    1. 针对数据库表中的页进行加锁的机制,适用于对某一页中的多行进行操作时,减少锁的粒度,提高并发性能。

不积跬步,无以至千里 --- xiaokai

相关文章:

数据库操作、锁特性

1. DML、DDL和DQL是数据库操作语言的三种主要类型 1.1 DML(Data Manipulation Language)数据操纵语言 DML是用于检索、插入、更新和删除数据库中数据的SQL语句。 主要的DML语句包括: SELECT:用于查询数据库中的数据。 INSERT&a…...

xiaolin coding 图解网络笔记——TCP篇

1. TCP 头格式有哪些? 序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就【累加】一次该【数据字节数】的大小。用来解决网络包乱序问题。 确认应答号:指…...

基于大数据python 豆果美食推荐数据可视化系统(源码+LW+部署讲解+数据库+ppt)

!!!!!!!!! 很对人不知道选题怎么选 不清楚自己适合做哪块内容 都可以免费来问我 避免后期給自己答辩找麻烦 增加难度(部分学校只有一次答辩机会 没弄好就延迟…...

ElasticSearch通过es-head插件安装可视化及相关问题

1.es-head下载地址 GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster 2.启动 建议使用vscode启动,并安装好node.js环境 npm installnpm run start 通过http://localhost:9100就可以看到本地添加的es库 3.相关问题 3.1跨域问…...

JVM系列之OOM观测准备

OOM, 全称 “Out Of Memory”,即内存用完的意思。JVM 因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时(可分配内存大于需要分配的内存), 就会抛出 java.lang.OutOfMemoryError。在实际的生产应用中,一旦…...

基于Java Springboot Vue3图书管理系统

一、作品包含 源码数据库设计文档万字全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue3、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA 数据库&#x…...

解析生成对抗网络(GAN):原理与应用

目录 一、引言 二、生成对抗网络原理 (一)基本架构 (二)训练过程 三、生成对抗网络的应用 (一)图像生成 无条件图像生成: (二)数据增强 (三&#xff…...

torch.maximum函数介绍

torch.maximum 函数介绍 定义:torch.maximum(input, other) 返回两个张量的逐元素最大值。 输入参数: input: 张量,表示第一个输入。other: 张量或标量,表示第二个输入。若为张量,其形状需要能与 input 广播。输出&a…...

Git | 理解团队合作中Git分支的合并操作

合并操作 团队合作中Git分支的合并操作分支合并过程1.创建feature/A分支的过程2. 创建分支feature/A-COPY3.合并分支查看代码是否改变 团队合作中Git分支的合并操作 需求 假设团队项目中的主分支是main,团队成员A基于主分支main创建了feature/A,而我又在团队成员A创…...

源代码定制编译:构建理想的库 以curl为例

文章目录 源代码curl开发环境下载地址制定理想的库初级进阶如何知道选项名称交叉编译交叉编译工具链配置编译环境设置目标架构库和头文件路径编译代码 源代码 我们在日常中会接触到比较多第三方库,比如 网络库相关: libevent、mongoose、curl图形界面&…...

服务熔断-熔断器设计

文章目录 服务为什么需要熔断熔断器设计思想熔断器代码实现 服务为什么需要熔断 对于服务端采用的保护机制为服务限流。 对于服务调用端是否存在保护机制? 假如要发布一个服务 B,而服务 B 又依赖服务 C,当一个服务 A 来调用服务 B 时&#x…...

生产环境中:Flume 与 Prometheus 集成

在生产环境中,将 Apache Flume 与 Prometheus 集成的过程,需要借助 JMX Exporter 或 HTTP Exporter 来将 Flume 的监控数据转换为 Prometheus 格式。以下是详细的实现方法,连同原理和原因进行逐步解释,让刚接触的初学者也能完成集…...

深度解析MySQL的刷脏机制

前言 今天天气挺好,看大家对MySQL系列这么感兴趣,继续来聊聊MySQL,在MySQL的InnoDB中Buffer Pool和LSN关系紧密相连,尤其在脏页管理和刷新过程中起着至关重要的作用。理解LSN如何同Buffer Pool协同工作,有助于深入掌握 MySQL 的写入优化机制及数据一致性保证。 Buffer P…...

Java NIO 全面详解:初学者入门指南

除了前一篇文章讲的传统的 java.io 模块,Java 还提供了更现代化、更高效的非阻塞 IO 模块,即 java.nio(New IO)。java.nio 引入了面向缓冲区(Buffer)的数据处理方式,以及多路复用器(…...

优化 Conda 下载速度:详细的代理配置和网络管理策略

优化 Conda 下载速度:详细的代理配置和网络管理策略 为了彻底解决使用 Conda 下载 PyTorch 时遇到的速度问题,并确保下载过程稳定可靠,这需要一个详细、综合的技术方案。让我们更深入地分析问题原因,然后详尽地解释采取的解决策略…...

蓝牙MCU单片机8k高回报率无线应用

随着高端无线产品性能大幅提升,相比常规蓝牙133Hz回报率,8kHz回报率作为市场最高标准,每秒上传8000个数据包。以鼠标为例,位置每秒更新8000次,刷新率较常规蓝牙提升了60倍,超低延迟、极速响应,已…...

Java抛出自定义运行运行

1.重新生成异常的.java文件 Empty:空 Exception:异常 加起来就是 空指针异常的文件 2.打上extends 运行的异常(异常的类型) 3.点击ctrlo,选着这两个快捷重写 4.在需要抛出异常的地方写上:th…...

JVM 性能调优 -- JVM常用调优工具【jps、jstack、jmap、jstats 命令】

前言: 前面我们分析怎么去预估系统资源,怎么去设置 JVM 参数以及怎么去看 GC 日志,本篇我们分享一些常用的 JVM 调优工具,我们在进行 JVM 调优的时候,通常需要借助一些工具来对系统的进行相关分析,从而确定…...

python+django自动化部署日志采用‌WebSocket前端实时展示

一、开发环境搭建和配置 # channels是一个用于在Django中实现WebSocket、HTTP/2和其他异步协议的库。 pip install channels#channels-redis是一个用于在Django Channels中使用Redis作为后台存储的库。它可以用于处理#WebSocket连接的持久化和消息传递。 pip install channels…...

【Flink-scala】DataStream编程模型之窗口计算-触发器-驱逐器

DataStream API编程模型 1.【Flink-Scala】DataStream编程模型之数据源、数据转换、数据输出 2.【Flink-scala】DataStream编程模型之 窗口的划分-时间概念-窗口计算程序 文章目录 DataStream API编程模型前言1.触发器1.1 代码示例 2.驱逐器2.1 代码示例 总结 前言 本小节我想…...

毕昇入门学习

schemas.py 概述 这段代码主要定义了一系列基于 Pydantic 的数据模型(BaseModel),用于数据验证和序列化,通常用于构建 API(如使用 FastAPI)。这些模型涵盖了用户认证、聊天消息、知识库管理、模型配置等多…...

实时数据开发|Flink实现数据输出--DataSinks操作

哇哦,又是快乐周五!今天主管又又又请我们喝奶茶了,是乐乐茶的草莓新品。甜甜的草莓配上糯叽叽的麻薯,喝完好满足。这应该不是什么加班信号吧哈哈哈,不加不加周五要回家。 前几天被不同的bug缠身,今天终于正…...

详解网络代理模式:规则、全局与直连的应用与配置

“详解网络代理模式:规则、全局与直连的应用与配置” 当然,为了提供更深入的理解,让我们对每种代理模式进行更详尽的探讨,包括它们的内部工作机制、具体使用场景以及在实际应用中的优势和局限。 规则模式(Rule-based…...

Nacos部署和使用(服务注册与发现、配置中心)

1. docker部署nacos 参考: docker安装nacos-CSDN博客 2.注册中心原理 在微服务远程调用的过程中,包括两个角色: 服务提供者:提供接口供其它微服务访问,比如 A-service服务消费者:调用其它微服务提供的…...

医学机器学习:数据预处理、超参数调优与模型比较的实用分析

摘要 本文介绍了医学中的机器学习,重点阐述了数据预处理、超参数调优和模型比较的技术。在数据预处理方面,包括数据收集与整理、处理缺失值、特征工程等内容,以确保数据质量和可用性。超参数调优对模型性能至关重要,介绍了多种调…...

【大数据学习 | Spark-SQL】关于RDD、DataFrame、Dataset对象

1. 概念: RDD: 弹性分布式数据集; DataFrame: DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型…...

流媒体中ES流、PS流 、TS流怎么理解

在流媒体的领域中,ES流、PS流和TS流是视频和音频数据的不同封装格式。它们通常用于传输、存储和播放多媒体内容。让我们分别了解一下它们的定义和用途。 1. ES流(Elementary Stream) ES流(基本流)是最基本的视频或音…...

阿里云ECS服务器磁盘空间不足的几个文件

查看磁盘空间命令: df -h /mnt 清零 echo >nohup.out 磁盘空间不足的文件列表: 一、nohup.out:来自"nohup java -jar service.jar &"命令产生的文件,位置在服务jar所在目录 二、access.log:位于…...

pip 安装指定镜像源

pip 安装指定镜像源 使用 pip 安装时,可以通过指定镜像源来加速安装速度,尤其在网络状况不佳或需要访问国内镜像源的情况下。 常见的国内镜像源 清华大学: https://pypi.tuna.tsinghua.edu.cn/simple 阿里云: https://mirrors.aliyun.com/pypi/simple …...

java全栈day10--后端Web基础(基础知识)

引言:只要能通过浏览器访问的网站全是B/S架构,其中最常用的服务器就是Tomcat 在浏览器与服务器交互的时候采用的协议是HTTP协议 一、Tomcat服务器 1.1介绍 官网地址:Apache Tomcat - Welcome! 1.2基本使用(网上有安装教程,建议…...

GPT(Generative Pre-trained Transformer) 和 Transformer的比较

GPT(Generative Pre-trained Transformer) 和 Transformer 的比较 flyfish 1. Transformer 是一种模型架构 Transformer 是一种通用的神经网络架构,由 Vaswani 等人在论文 “Attention Is All You Need”(2017)中提…...

大数据营销

大数据营销是一个热门的大数据应用。对于多数企业而言,大数据营销的主要价值源于以下几个方面。 市场预测与决策分析支持 数据对市场预测及决策分析的支持,早就在数据分析与数据挖掘盛行的年代被提出过。沃尔玛著名的“啤酒与尿布”案例就是那个时候的杰…...

数据字典的实现与应用 —— 提高系统灵活性与维护效率的关键

目录 前言1. 数据字典的基本概念1.1 什么是数据字典1.2 数据字典的主要特点 2. 数据字典的优势2.1 提高代码复用性2.2 提升系统的灵活性2.3 方便非技术人员管理2.4 减少错误概率 3. 数据字典在若依中的实现3.1 若依框架简介3.2 数据字典的结构设计 4. 若依框架中数据字典的配置…...

Scrapy管道设置和数据保存

1.1 介绍部分: 文字提到常用的Web框架有Django和Flask,接下来将学习一个全球范围内流行的爬虫框架Scrapy。 1.2 内容部分: Scrapy的概念、作用和工作流程 Scrapy的入门使用 Scrapy构造并发送请求 Scrapy模拟登陆 Scrapy管道的使用 Scrapy中…...

Jenkins的使用

文章目录 一、Jenkins是什么\有什么用\与GitLab的对比二、Jenkins的安装与配置Jenkins的安装方式在Linux上安装Jenkins:在Windows上安装Jenkins:配置Jenkins: (可选)配置启动用户为root(一定要是root吗??…...

计算机基础 原码反码补码问题

整数的二进制的表示形式:其实有三种 原码:直接根据数值写出的二进制序列就是原码 反码:原码的符号位不变,其他位按位取反就是反码 补码:反码1,就是补码 负数:-1 以补码形式存放在内存 写出 -1…...

ORB-SLAM2 ----- LocalMapping::SearchInNeighbors()

文章目录 一、函数意义二、函数讲解三、函数代码四、本函数使用的匹配方法ORBmatcher::Fuse()1. 函数讲解2. 函数代码 四、总结 一、函数意义 本函数是用于地图点融合的函数,前面的函数生成了新的地图点,但这些地图点可能在前面的关键帧中已经生成过了&a…...

游戏引擎学习第27天

仓库:https://gitee.com/mrxiao_com/2d_game 欢迎 项目的开始是从零开始构建一款完整的游戏,完全不依赖任何库或引擎。这样做有两个主要原因:首先,因为这非常有趣;其次,因为它非常具有教育意义。了解游戏开发的低层次…...

【超全总结】深度学习分割模型的损失函数类别及应用场景

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...

基于HTML和CSS的校园网页设计与实现

摘要 随着计算机、互联网与通信技术的进步,Internet在人们的学习、工作和生活中的地位也变得越来越高,校园网站已经成为学校与学生,学生与学生之间交流沟通的重要平台,对同学了解学校内发生的各种事情起到了重要的作用。学校网站…...

深度学习基础02_损失函数BP算法(上)

目录 一、损失函数 1、线性回归损失函数 1.MAE损失 2.MSE损失 3.SmoothL1Loss 2、多分类损失函数--CrossEntropyLoss 3、二分类损失函数--BCELoss 4、总结 二、BP算法 1、前向传播 1.输入层(Input Layer)到隐藏层(Hidden Layer) 2.隐藏层(Hidden Layer)到输出层(Ou…...

Flutter:列表分页,上拉加载下拉刷新,在GetBuilder模板使用方式

GetBuilder模板使用方式参考上一节 本篇主要代码记录如何使用上拉加载下拉刷新, 接口请求和商品组件的代码不包括在内 pubspec.yaml装包 cupertino_icons: ^1.0.8# 分页 上拉加载,下拉刷新pull_to_refresh_flutter3: 2.0.2商品列表:controlle…...

使用eclipse构建SpringBoot项目

我这里用eclipse2018版本做演示,大家有需要的可以下载Eclipse Downloads | The Eclipse Foundation 1.打开eclipse,选择存放代码的位置 2.选择 file >> new >> project >> 选择springboot文件下的 spring starter project 2.这里选择N…...

Linux系统存储挂载与管理:从基础到高级

标题:Linux系统存储挂载与管理:从基础到高级 摘要 在Linux系统中,合理的存储管理和分配对于系统的性能、稳定性和资源利用至关重要。本文将详细介绍存储挂载的基本概念、如何进行存储分配和管理,并解释系统盘的作用。通过这些内…...

Flutter 权限申请

这篇文章是基于permission_handler 10.2.0版本写的 前言 在App开发过程中我们经常要用到各种权限,我是用的是permission_handler包来实现权限控制的。 pub地址:https://pub.dev/packages/permission_handler permission_handler 权限列表 变量 Androi…...

Linux之信号的产生,保存,捕捉

Linux之信号的产生,保存,捕捉处理 一.信号的概念1.1概念1.2分类 二.信号的产生2.1通过键盘产生的信号2.2系统调用接口产生的信号2.3硬件异常产生的信号2.4软件条件产生的信号 三.信号的保存四.信号的捕捉五.信号的其他杂碎知识5.1可重入函数5.2volatile关…...

基于AutoEncode自编码器的端到端无线通信系统matlab误码率仿真

目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印): 仿真操作步骤可参考程序配套的操作视频。 2.算法涉及理论知识概要 自编码器是…...

泛化调用 :在没有接口的情况下进行RPC调用

什么是泛化调用? 在RPC调用的过程中,调用端向服务端发起请求,首先要通过动态代理,动态代理可以屏蔽RPC处理流程,使得发起远程调用就像调用本地一样。 RPC调用本质:调用端向服务端发送一条请求消息&#x…...

2025年人工智能,自动化与机械工程国际学术会议(AIAME2025)

早鸟通道开启: 2025年人工智能,自动化与机械工程国际学术会议(AIAME2025) 2025 International Conference on Artificial Intelligence, Automation, and Mechanical Engineering 【重要日期】 早鸟征稿截止日期:…...

docker compose 快速搭建Nacos单节点测试环境(mysql 版)

〓 参考: https://nacos.io/docs/latest/quickstart/quick-start-docker/?sourcewuyi https://github.com/nacos-group/nacos-docker https://nacos.io/docs/latest/manual/admin/deployment/deployment-standalone/?sourcewuyi https://nacos.io/docs/latest/man…...