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

【面试题】MySQL(第三篇)

目录

1. MySQL中如何处理死锁?

2. MySQL中的主从复制是如何实现的?

3. MySQL中的慢查询日志是什么?如何使用它来优化性能?

4.存储过程

一、定义与基本概念

二、特点与优势

三、类型与分类

四、创建与执行

五、示例

六、总结

5.触发器

一、定义与基本概念

二、工作原理

三、应用场景

四、优缺点

五、结论

6.视图

7.游标

游标的基本使用步骤

示例

8.建表的范式

1. 第一范式(1NF)

2. 第二范式(2NF)

3. 第三范式(3NF)

总结

9.建表的约束

1. 非空约束(NOT NULL)

2. 主键约束(PRIMARY KEY)

3. 唯一约束(UNIQUE)

4. 外键约束(FOREIGN KEY)

5. 检查约束(CHECK)

6. 默认值约束(DEFAULT)

添加约束的时机

注意事项

10.关系型和非关系型数据库的区别?


1. MySQL中如何处理死锁?

MySQL中处理死锁的方法包括:

  • 最小化事务大小和持续时间:通过减小事务范围和减少它们持有锁的时间来降低死锁的风险。

  • 避免多个事务同时修改相同的数据行:设计应用逻辑,以减少事务之间的交互。

  • 索引的合理使用:确保查询是高效的,并且尽可能使用索引,可以减少锁的范围。

  • 检测和日志记录:使用SHOW ENGINE INNODB STATUS命令检查死锁日志,分析和调整应用逻辑。

2. MySQL中的主从复制是如何实现的?

MySQL中的主从复制涉及以下步骤:

  • 在主服务器上配置唯一的服务器ID,并开启二进制日志记录。

  • 在从服务器上设置唯一的服务器ID,并配置主服务器的相关信息(如主服务器IP、登录凭证)。

  • 在主服务器上创建一个具有复制权限的用户账户,供从服务器使用。

  • 初始化从服务器的数据,并启动复制进程。

这些步骤可以通过修改MySQL的配置文件(如my.cnf或my.ini)和执行SQL命令来完成。

3. MySQL中的慢查询日志是什么?如何使用它来优化性能?

MySQL中的慢查询日志是记录执行时间超过预设阈值的查询语句的日志。通过分析这些查询,可以发现哪些查询最消耗资源,然后对它们进行优化。

要使用慢查询日志来优化性能,可以按照以下步骤进行:

  • 开启慢查询日志:在MySQL的配置文件中设置slow_query_log和slow_query_log_file参数。

  • 设置阈值:通过long_query_time参数设置慢查询的阈值。

  • 分析日志:使用工具(如mysqldumpslow)或手动分析慢查询日志,找出

4.存储过程

存储过程(Stored Procedure)是数据库系统中的一个重要对象,特别是在大型数据库系统中。以下是对存储过程的详细解析:

一、定义与基本概念

存储过程是一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译后永久有效。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程可以提高数据库操作的效率和安全性,同时减少网络通信量。

二、特点与优势

  1. 提高执行效率:由于存储过程在数据库服务器上进行了编译并存储,因此其执行速度通常比单个SQL语句块要快。此外,在数据量特别庞大的情况下,利用存储过程能达到倍速的效率提升。

  2. 保证数据的安全性和完整性:通过存储过程,可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。同时,存储过程可以使相关的动作一起发生,从而维护数据库的完整性。

  3. 减少网络通信量:存储过程主要是在服务器上运行,减少了客户机和服务器之间的数据传输量,从而降低了网络通信负担。

  4. 灵活性:存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。它还可以包含程序流、逻辑以及对数据库的查询,实现复杂的数据处理逻辑。

三、类型与分类

存储过程可以根据其特点和用途进行分类,包括但不限于:

  • 用户创建的存储过程:由用户创建并完成某一特定功能的存储过程。

  • 临时存储过程:分为本地临时存储过程和全局临时存储过程。本地临时存储过程以井字号(#)作为其名称的第一个字符,且只有创建它的用户才能执行;全局临时存储过程以两个井字号(##)开始,全局可见,一旦创建,以后连接到服务器的任意用户都可以执行它。

  • 远程存储过程:位于远程服务器上的存储过程,通常使用分布式查询和EXECUTE命令执行。

  • 扩展存储过程:用户可以使用外部程序语言编写的存储过程,名称通常以xp_开头。

四、创建与执行

  1. 创建存储过程:在SQL中,可以使用CREATE PROCEDURE语句来创建存储过程。创建时需要指定存储过程的名称、参数(如果有的话)以及存储过程体中包含的SQL语句和逻辑。

  2. 执行存储过程:存储过程可以在多种环境下被调用,包括在command命令下使用EXEC语句执行。调用时需要提供存储过程的名称和必要的参数信息。

五、示例

以下是一个简单的存储过程示例,用于输出系统日期:

CREATE OR REPLACE PROCEDURE output_date IS  
BEGIN  DBMS_OUTPUT.PUT_LINE(SYSDATE);  
END output_date;

这个存储过程没有接受任何参数,只是简单地输出了系统当前的日期和时间。

六、总结

存储过程是数据库系统中一个非常重要的功能,它能够提高数据库操作的效率和安全性,减少网络通信量,并且能够封装复杂的数据处理逻辑。通过合理使用存储过程,可以优化数据库的性能,提升应用程序的响应速度。

5.触发器

触发器(Trigger)是计算机科学中的一个重要概念,特别是在数据库管理系统(DBMS)中扮演着关键角色。以下是对触发器的详细解析:

一、定义与基本概念

  • 定义:触发器是一种特殊类型的程序或事件,当特定的条件满足时,会自动触发执行的操作。在数据库中,触发器是与表相关联的一种特殊对象,它绑定在某个表上的特定事件(如插入、更新或删除数据)上,当该事件发生时,触发器会自动执行一系列预定义的操作。

  • 类型:触发器可以根据其触发事件和用途进行分类。例如,在SQL Server中,触发器可以分为DML触发器(数据操纵语言触发器,用于处理数据插入、更新、删除操作)、DDL触发器(数据定义语言触发器,用于处理数据库结构变更操作)和登录触发器(用于处理登录事件)。

二、工作原理

  • 触发条件:触发器需要指定一个或多个触发条件,即触发事件。当这些事件发生时,触发器会被自动激活并执行其预定义的操作。

  • 执行操作:触发器的执行操作可以包括SQL语句、控制结构等,用于实现特定的业务逻辑或数据约束。

  • 时序特性:触发器可以设置为在事件发生之前(BEFORE)或之后(AFTER)执行。BEFORE触发器在事件发生之前执行,可以阻止事件的发生;AFTER触发器在事件发生之后执行,用于记录事件的发生或进行后续处理。

三、应用场景

  • 数据完整性约束:通过创建触发器,可以在插入、更新或删除数据时自动检查数据的约束条件,从而保证数据的一致性和完整性。

  • 业务逻辑实现:触发器可以在数据发生变化时自动执行业务逻辑,如自动计算字段值、更新相关表的数据等。

  • 审计和日志记录:通过创建AFTER触发器,可以在数据发生变化时自动记录日志,便于后期的审计和分析。

四、优缺点

  • 优点:

    • 自动化:触发器可以在特定事件发生时自动执行,无需手动干预,提高了数据处理的效率。

    • 数据一致性:通过创建触发器,可以在插入、更新或删除数据时自动检查数据的约束条件,保证数据的一致性和完整性。

    • 业务逻辑简化:通过创建触发器,可以在数据发生变化时自动执行业务逻辑,简化了业务处理的复杂性。

  • 缺点:

    • 性能开销:触发器的执行会带来额外的性能开销,可能会影响数据库的性能。因此,在使用触发器时需要权衡其带来的便利和性能影响。

    • 调试困难:由于触发器的执行是在特定事件发生时自动进行的,因此在调试过程中可能会遇到困难。需要借助日志和其他工具来定位问题。

    • 维护成本:随着业务的发展和变化,可能需要不断地修改和维护触发器,增加了维护成本。

五、结论

触发器是数据库中一种非常有用的功能,可以实现对数据库的约束、保证数据的一致性和完整性,以及实现业务逻辑。然而,在使用触发器时需要注意其优缺点,并合理地使用触发器来提高数据处理的效率和质量。同时,也需要关注触发器的性能影响和维护成本,确保数据库系统的稳定性和可靠性。

6.视图

在数据库系统中,视图是一种虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。视图具有以下特性和作用:

  1. 特性:

    • 视图是对若干张基本表的引用,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变)。

    • 可以跟基本表一样,进行增删改查操作(增删改操作有条件限制)。

  2. 作用:

    • 简单性:视图可以简化用户对数据的理解和操作,将复杂的查询封装成简单的视图,用户只需对视图进行操作即可。

    • 安全性:通过视图,可以限制用户访问数据的范围,提高数据的安全性。例如,可以将用户权限与视图绑定,用户只能查询和修改视图中的数据,而无法直接访问基本表中的数据。

    • 逻辑数据独立性:视图可以帮助用户屏蔽真实表结构变化带来的影响,使得用户只关心他们感兴趣的特定数据和他们所负责的特定任务。

7.游标

MySQL游标(Cursor)是一种数据库查询工具,它允许你在存储过程或函数中逐行处理查询结果集中的数据。游标提供了一种灵活的方式来操作查询结果集中的数据,尤其是当你需要基于复杂条件对数据进行处理时。

游标的基本使用步骤

  1. 声明游标:首先,你需要使用DECLARE语句声明一个游标,并为其指定一个名称以及SELECT语句,该SELECT语句用于检索你想要逐行处理的数据。

  2. 打开游标:使用OPEN语句打开游标。在游标打开之后,你可以使用FETCH语句来逐行检索数据。

  3. 获取数据:通过FETCH语句从游标中获取数据。每次调用FETCH语句时,游标都会移动到结果集中的下一行。

  4. 关闭游标:在完成了对游标的操作之后,你应该使用CLOSE语句来关闭游标,以释放游标所使用的系统资源。

示例

下面是一个使用MySQL游标的简单示例,该示例在存储过程中使用游标来遍历一个查询结果集,并打印出每一行的数据。

DELIMITER 
$$CREATE PROCEDURE FetchData()  
BEGIN  -- 声明变量来存储从游标中获取的数据  DECLARE finished INTEGER DEFAULT 0;  DECLARE id INT;  DECLARE name VARCHAR(50);  -- 声明一个游标  DECLARE cur1 CURSOR FOR SELECT id, name FROM your_table;  -- 声明一个继续处理或退出循环的条件  DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;  -- 打开游标  OPEN cur1;  -- 循环获取游标中的数据  get_data: LOOP  FETCH cur1 INTO id, name;  IF finished = 1 THEN   LEAVE get_data;  END IF;  -- 在这里处理你的数据,例如打印  SELECT CONCAT('ID: ', id, ', Name: ', name);  END LOOP get_data;  -- 关闭游标  CLOSE cur1;  
END
$$DELIMITER ;

在这个示例中,your_table应该被替换为你想要查询的表名。这个存储过程首先声明了游标cur1,该游标用于遍历your_table表中的idname列。然后,它通过一个循环来逐行检索并处理数据。在每次迭代中,它都会检查是否还有更多的数据要处理;如果没有,则通过设置finished变量为1来退出循环。最后,它关闭了游标以释放资源。

请注意,虽然游标提供了强大的数据处理能力,但它们也可能对性能产生负面影响,因为每次FETCH操作都可能导致数据库进行磁盘I/O操作。因此,在可能的情况下,最好使用集合操作(如JOIN、GROUP BY等)来替代游标处理,以提高性能。

8.建表的范式

在数据库设计中,建表的范式是确保数据库结构合理、数据完整性和减少数据冗余的重要指导原则。关系型数据库通常遵循的范式包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF),这些范式是逐步递进的,即满足高一级范式的前提是必须先满足低一级范式。

1. 第一范式(1NF)

定义:第一范式要求数据库表的每一列都是不可分割的原子数据项,即列不可再分。

要点

  • 表中每列的值只能是表的一个属性或一个属性的一部分,确保每列的原子性。

  • 如果一个属性值有多个值时,必须拆分为不同的属性,每个属性值作为独立的列。

  • 例如,不能将多个姓名存储在单个列中,而应为每个姓名分配一个单独的列(但在实际应用中,通常不会这样做,而是通过其他方式如分隔符或单独表来处理)。

2. 第二范式(2NF)

定义:第二范式是在第一范式的基础上建立起来的,要求数据库表中的每个实例或记录必须可以被唯一地区分,且表中的每一个字段都完全依赖于主键。

要点

  • 表必须有主键,主键是表中每条记录的唯一标识。

  • 表中的非主键列必须完全依赖于主键,不能存在仅依赖于主键一部分的情况。

  • 如果存在这种情况,应将表拆分为两个或多个表,以消除部分依赖。

3. 第三范式(3NF)

定义:第三范式是在第二范式的基础上进一步要求,确保表中的列不存在对非主键列的传递依赖,即每个非主键列都直接依赖于主键,而不是通过其他非主键列间接依赖于主键。

要点

  • 消除表中的传递依赖,即不允许出现“A依赖于B,B依赖于主键”的情况。

  • 这样做可以进一步减少数据冗余,提高数据的一致性。

  • 如果存在传递依赖,应将表拆分为多个表,并在它们之间建立适当的关系(如外键)。

总结

建表的范式是数据库设计的重要原则,它们确保了数据库结构的合理性和数据的一致性。在设计数据库表时,应根据实际情况选择合适的范式级别,以平衡数据的完整性、冗余性和查询效率。虽然理论上可以追求更高的范式级别(如BCNF、4NF、5NF等),但在实际应用中,通常满足第三范式就足够了。同时,也需要注意反范式(Denormalization)的情况,即在某些情况下为了优化查询性能而故意违反范式规则。

9.建表的约束

在数据库建表时,约束(Constraints)是用来限制表中数据的规则,以确保数据的准确性、有效性和完整性。常见的建表约束包括以下几种:

1. 非空约束(NOT NULL)

  • 定义:非空约束确保字段在插入或更新记录时不能留空。

  • 示例:在创建表时,如果某个字段是必填项,可以在该字段后加上NOT NULL约束。例如,username VARCHAR(50) NOT NULL

2. 主键约束(PRIMARY KEY)

  • 定义:主键约束用于保证表中的每一条记录都能通过主键来唯一识别。主键列的值必须唯一且不能为空。

  • 类型:

    • 单字段主键:在定义字段时直接指定主键约束,如id INT PRIMARY KEY

    • 联合主键:由多个字段组合而成的主键,如PRIMARY KEY(field1, field2)

  • 作用:

    • 确定唯一的一行数据。

    • 自动按照主键列生成索引,提高数据检索效率。

    • 确保数据的唯一性和规范性。

3. 唯一约束(UNIQUE)

  • 定义:唯一约束保证表中的每一列或列组合中的值都是唯一的,但允许有空值(除非同时指定了NOT NULL约束)。

  • 示例email VARCHAR(100) UNIQUE

4. 外键约束(FOREIGN KEY)

  • 定义:外键约束用于维护两个表之间的关系,确保一个表中的数据匹配另一个表中的值。

  • 作用:保持数据的一致性和完整性。

  • 示例FOREIGN KEY (department_id) REFERENCES departments(department_id)

5. 检查约束(CHECK)

  • 定义:检查约束用于限制表中列可以接受的值的范围。通过指定条件表达式,确保列中的值满足特定的要求。

  • 示例CHECK (age >= 18),确保年龄字段的值不小于18。

6. 默认值约束(DEFAULT)

  • 定义:默认值约束用于在插入记录时,如果某个字段没有指定值,则自动使用默认值。

  • 示例gender VARCHAR(10) DEFAULT 'Unknown',如果插入记录时没有指定gender字段的值,则默认为'Unknown'。

添加约束的时机

  • 创建表时:在定义表结构的同时添加约束。

  • 修改表时:如果表已经创建,可以通过ALTER TABLE语句来添加或修改约束。

注意事项

  • 主键约束是六种约束中使用最多的,一个表只能有一个主键,但主键可以是由多个字段组成的联合主键。

  • 联合主键中的每个字段都不能为空,并且组合起来的值必须唯一。

  • 外键约束的引用字段在主表中必须是主键或具有唯一约束的字段。

通过合理设置这些约束,可以大大提高数据库数据的准确性和完整性,同时也有助于优化数据库的性能。

10.关系型和非关系型数据库的区别?

关系型数据库的优点

容易理解,因为它采用了关系模型来组织数据。 可以保持数据的一致性。 数据更新的开销比较小。 支持复杂查询(带 where 子句的查询)

非关系型数据库(NOSQL)的优点

无需经过 SQL 层的解析,读写效率高。 基于键值对,读写性能很高,易于扩展 可以支持多种类型数据的存储,如图片,文档等等。

相关文章:

【面试题】MySQL(第三篇)

目录 1. MySQL中如何处理死锁? 2. MySQL中的主从复制是如何实现的? 3. MySQL中的慢查询日志是什么?如何使用它来优化性能? 4.存储过程 一、定义与基本概念 二、特点与优势 三、类型与分类 四、创建与执行 五、示例 六、总…...

tensorflow之欠拟合与过拟合,正则化缓解

过拟合泛化性弱 欠拟合解决方法: 增加输入特征项 增加网络参数 减少正则化参数 过拟合的解决方法: 数据清洗 增大训练集 采用正则化 增大正则化参数 正则化缓解过拟合 正则化在损失函数中引入模型复杂度指标,利用给w增加权重,…...

vue实现a-model弹窗拖拽移动

通过自定义拖拽指令实现 实现效果 拖动顶部,可对整个弹窗实施拖拽(如果需要拖动底部、中间内容实现拖拽,把下面的ant-modal-header对应改掉就行) 代码实现 编写自定义指令 新建一个ts / js文件,用ts举例 import V…...

速盾:如何加强网站的安全性

随着互联网的快速发展,网站的安全性变得越来越重要。CDN(内容分发网络)是一种常见的网络加速服务,它可以将网站的静态内容分发到全球各地的服务器上,以提供更快的访问速度。然而,CDN 也存在一些安全风险&am…...

【PyTorch单点知识】自动求导机制的原理与实践

文章目录 0. 前言1. 自动求导的基本原理2. PyTorch中的自动求导2.1 创建计算图2.2 反向传播2.3 反向传播详解2.4 梯度清零2.5 定制自动求导 3. 代码实例:线性回归的自动求导4. 结论 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解&…...

【Java】搜索引擎设计:信息搜索怎么避免大海捞针?

一、内容分析 我们准备开发一个针对全网内容的搜索引擎,产品名称为“Bingoo”。 Bingoo的主要技术挑战包括: 针对爬虫获取的海量数据,如何高效地进行数据管理;当用户输入搜索词的时候,如何快速查找包含搜索词的网页…...

【Python】ModuleNotFoundError: No module named ‘distutils.util‘ bug fix

【Python】ModuleNotFoundError: No module named distutils.util bug fix 1. error like this2. how to fix why this error occured , because i remove the origin version python of ubuntu of 20.04. then the system trapped in tty1 , you must make sure the laptop li…...

痉挛性斜颈对生活有哪些影响?

痉挛性斜颈,这个名字听起来可能并不熟悉,但它实际上是一种神经系统疾病,影响着全球数百万人的生活质量。它以一种无法控制的方式,使患者的颈部肌肉发生不自主的收缩,导致头部姿势异常。对于患者来说,痉挛性…...

Javassist 修改 jar 包里的 class 文件

前言 Javassist 是一个用于处理 Java 字节码的类库,可以用以修改 class 文件或 jar 包里的 class 文件。 简单来说我们用Java编写的代码是放在 java 格式的代码文件里,在编译的时候会编译为 class 格式的字节码文件,然后一般所有 class 文件…...

交换机的二三层原理

相同VLAN的交换机交换原理(二层交换原理): 交换机收到数据帧,首先会检查数据帧的VLAN标签和目标MAC,若属于相同VLAN,且该目标MAC在本地MAC表中,则直接根据出接口进行数据转发 不同VLAN的交换机…...

HarmonyOS ArkUi 字符串<展开/收起>功能

效果图: 官方API: ohos.measure (文本计算) 方式一 measure.measureTextSize 跟方式二使用一样,只是API调用不同,可仔细查看官网方式二 API 12 import { display, promptAction } from kit.ArkUI import { MeasureUtils } fr…...

Lianwei 安全周报|2024.07.09

新的一周又开始了,以下是本周「Lianwei周报」,我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件,保证大家不错过本周的每一个重点! 政策/标准/指南最新动态 01 《数字中国发展报告(2023年&#xff09…...

火遍全网的15个Python的实战项目,你该不会还不知道怎么用吧!

经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享几个Python小游…...

快速使用BRTR公式出具的大模型Prompt提示语

Role:文章模仿大师 Background: 你是一位文章模仿大师,擅长分析文章风格并进行模仿创作。老板常让你学习他人文章后进行模仿创作。 Attention: 请专注在文章模仿任务上,提供高质量的输出。 Profile: Author: 一博Version: 1.0Language: 中文Descri…...

Xilinx FPGA DDR4 接口的 PCB 准则

目录 1. 简介 1.1 FPGA-MIG 与 DDR4 介绍 1.2 DDR4 信号介绍 1.2.1 Clock Signals 1.2.2 Address and Command Signals 1.2.3 Control Signals 1.2.4 Data Signals 1.2.5 Other Signals 2. 通用存储器布线准则 3. Xilinx FPGA-MIG 的 PCB 准则 3.1 引脚配置 3.1.1 …...

神经网络 | Transformer 基本原理

目录 1 为什么使用 Transformer?2 Attention 注意力机制2.1 什么是 Q、K、V 矩阵?2.2 Attention Value 计算流程2.3 Self-Attention 自注意力机制2.3 Multi-Head Attention 多头注意力机制 3 Transformer 模型架构3.1 Positional Encoding 位置编…...

浅析 VO、DTO、DO、PO 的概念

文章目录 I 浅析 VO、DTO、DO、PO1.1 概念1.2 模型1.3 VO与DTO的区别I 浅析 VO、DTO、DO、PO 1.1 概念 VO(View Object) 视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object): 数据传输对象,这个概念来源于J2EE的设…...

7.8 CompletableFuture

Future 接口理论知识复习 Future 接口(FutureTask 实现类)定义了操作异步任务执行的一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。 比如主线程让一个子线程去执行任务,子线…...

iPad锁屏密码忘记怎么办?有什么方法可以解锁?

当我们在日常使用iPad时,偶尔可能会遇到忘记锁屏密码的尴尬情况。这时,不必过于担心,因为有多种方法可以帮助您解锁iPad。接下来,小编将为您详细介绍这些解决方案。 一、使用iCloud的“查找我的iPhone”功能 如果你曾经启用了“查…...

了解并缓解 IP 欺骗攻击

欺骗是黑客用来未经授权访问计算机或网络的一种网络攻击,IP 欺骗是其他欺骗方法中最常见的欺骗类型。通过 IP 欺骗,攻击者可以隐藏 IP 数据包的真实来源,使攻击来源难以知晓。一旦访问网络或设备/主机,网络犯罪分子通常会挖掘其中…...

java LogUtil输出日志打日志的class文件内具体方法和行号

最近琢磨怎么把日志打的更清晰,方便查找问题,又不需要在每个class内都创建Logger对象,还带上不同的颜色做区分,简直不要太爽。利用堆栈的方向顺序拿到日志的class问题。看效果,直接上代码。 1、demo test 2、输出效果…...

02. Hibernate 初体验之持久化对象

1. 前言 本节课程让我们一起体验 Hibernate 的魅力!编写第一个基于 Hibernate 的实例程序。 在本节课程中,你将学到 : Hibernate 的版本发展史;持久化对象的特点。 为了更好地讲解这个内容,这个初体验案例分上下 2…...

MySQL超详细学习教程,2023年硬核学习路线

文章目录 前言1. 数据库的相关概念1.1 数据1.2 数据库1.3 数据库管理系统1.4 数据库系统1.5 SQL 2. MySQL数据库2.1 MySQL安装2.2 MySQL配置2.2.1 添加环境变量2.2.2 新建配置文件2.2.3 初始化MySQL2.2.4 注册MySQL服务2.2.5 启动MySQL服务 2.3 MySQL登录和退出2.4 MySQL卸载2.…...

初识SpringBoot

1.Maven Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包 主要功能 项⽬构建管理依赖 构建Maven项目 1.1项目构建 Maven 提供了标准的,跨平台(Linux, Windows, MacOS等)的⾃动化项⽬构建⽅式 当我们开发了⼀个项⽬之后, 代…...

Qt之元对象系统

Qt的元对象系统提供了信号和槽机制(用于对象间的通信)、运行时类型信息和动态属性系统。 元对象系统基于三个要素: 1、QObject类为那些可以利用元对象系统的对象提供了一个基类。 2、在类声明中使用Q_OBJECT宏用于启用元对象特性&#xff0c…...

Provider(1)- 什么是AudioBufferProvider

什么是AudioBufferProvider? 顾名思义,Audio音频数据缓冲提供,就是提供音频数据的缓冲类,而且这个AudioBufferProvider派生出许多子类,每个子类有不同的用途,至关重要;那它在Android哪个地方使…...

加密与安全_密钥体系的三个核心目标之完整性解决方案

文章目录 Pre机密性完整性1. 哈希函数(Hash Function)定义特征常见算法应用散列函数常用场景散列函数无法解决的问题 2. 消息认证码(MAC)概述定义常见算法工作原理如何使用 MACMAC 的问题 不可否认性数字签名(Digital …...

【C++】:继承[下篇](友元静态成员菱形继承菱形虚拟继承)

目录 一,继承与友元二,继承与静态成员三,复杂的菱形继承及菱形虚拟继承四,继承的总结和反思 点击跳转上一篇文章: 【C】:继承(定义&&赋值兼容转换&&作用域&&派生类的默认成员函数…...

昇思25天学习打卡营第13天|基于MindNLP+MusicGen生成自己的个性化音乐

关于MindNLP MindNLP是一个依赖昇思MindSpore向上生长的NLP(自然语言处理)框架,旨在利用MindSpore的优势特性,如函数式融合编程、动态图功能、数据处理引擎等,致力于提供高效、易用的NLP解决方案。通过全面拥抱Huggin…...

nigix的下载使用

1、官网:https://nginx.org/en/download.html 双击打开 nginx的默认端口是80 配置文件 默认访问页面 在目录下新建pages,放入图片 在浏览器中输入地址进行访问 可以在电脑中配置本地域名 Windows设置本地DNS域名解析hosts文件配置 文件地址&#xf…...

政府网站 banner 源码/附近的电脑培训班在哪里

继承 继承是什么? 继承是c的三大特性之一继承。 那么继承有什么作用? 继承可以提高我们代码的复用性。既然是复用,简单来说就是重复利用。 再举一个重复利用的例子ctrlc,ctrlv,也是重复利用,其实复用你…...

wordpress菜单移到右边/seo合作代理

2019独角兽企业重金招聘Python工程师标准>>> 源码地址: http://git.oschina.net/tinyframework/tiny http://git.oschina.net/tinyframework/tiny/tree/master/framework/org.tinygroup.pc 前面和果粉们说了,要在200果粉齐了的时候就开源分…...

如何使用阿里云做网站/拉新平台

在开发 Flex 或 AIR 应用程序的时候,如果需要把图片、声音等资源嵌入到目标文件中的时候,一般需要使用到 Embed Embed 标记的功能就是把资源生成一个相应的类,以下是 Embed 标记应的地情况说明: 1、在代码中使用 Embed 标记 [Embe…...

内容展示类网站/百度经验悬赏任务平台

Galaxy 在一维坐标轴上给出n个点,第i个点坐标为\(x_i\),现在你可以任意移动k个点的,最小化它们的方差,\(n\leq 50000\)。 解 设\(\bar{x}\frac{\sum_{i1}^nx_i}{n}\),容易知道方差为 \[\sum_{i1}^n(x_i-\bar{x})^2\sum_{i1}^nx_i^2-n\bar{x}^…...

阐述商业网站开发岗位需求分析/百度学术搜索

Android系统构架PAGE 1目 录TOC \o "1-3" \h \z \u 一、Android系统构架 1二、Linux内核层 2三、系统运行库层 3(一)系统库 3(二)Android运行时 4Android系统构架本次课程我们主要介绍Android的系统构架以及Linux内核层和系统运行库层的主要作用。一、Android系统构架…...

用asp做的大型网站/html网页制作app

原文出处:http://www.linuxidc.com/Linux/2013-02/79999.htm 1.安装Ubuntu12.xx(本人使用的是12.10,其他版本未测试) 2.配置java环境 下载jdk-6u34-linux-x64.bin(百度google),终端中执行安装&a…...