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

【mysql】—— 数据类型详解

序言:

本期我将大家认识关于 mysql 数据库中的基本数据类型的学习。通过本篇文章,我相信大家对mysql 数据类型的理解都会更加深刻。

MySQL标志矢量图 - 设计之家

目录

(一)数据类型分类

(二)数值类型

1、tinyint类型

2、bit类型

3、小数类型

float类型

decimal

4、字符串类型

char

varchar

char和varchar比较

日期和时间类型

enum和set

总结


(一)数据类型分类

首先,在我们正式的学习数据类型之前,我们需要知道有哪些数据类型在mysql数据库中。因此,接下来我首先带大家认识具体有哪些数据类型。

💨 MySQL中的数据类型可以分为以下几个主要分类:

1️⃣数值类型

  • 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT等。
  • 浮点数类型:FLOAT、DOUBLE等。
  • 定点数类型:DECIMAL。

2️⃣字符串类型

  • 固定长度字符串:CHAR。
  • 可变长度字符串:VARCHAR。
  • 大文本类型:TEXT。

3️⃣日期和时间类型

  • DATE:日期。
  • TIME:时间。
  • DATETIME:日期和时间。
  • TIMESTAMP:时间戳。

4️⃣ 布尔类型

  • BOOL、BOOLEAN。

5️⃣枚举和集合类型

  • ENUM:从预定义值列表中选择一个值。
  • SET:从预定义值集合中选择多个值。

6️⃣二进制类型

  • BLOB:用于存储二进制数据。

7️⃣ JSON类型:用于存储和处理JSON格式的数据。

 8️⃣空间数据类型:用于处理地理空间数据。

最后,我给大家整理总结了一张表,大家可以直观的去感受(对于其中红色的是需要大家掌握的,其余的等到需要用到的时候在学习不迟!!)

MySQL的数据类型都有哪些?它们分别用在什么的场景?_人山人海肉最可爱的博客-CSDN博客_数据类型有哪几种

【小结】

这些数据类型可以根据需求在MySQL表的列定义中使用。在选择数据类型时,需要考虑存储需求、数据的精度要求、操作和计算的效率等因素。此外,MySQL还支持一些特殊的数据类型和存储引擎相关的数据类型,如GEOMETRY、POINT、XML等,可以根据具体需求选择使用。


(二)数值类型

下面是一些常用的数据类型值:

MySQL常见数据类型详解_mysql中 数值数据类型包括2种,分别是( )数据类型和( )数据类型。_你走开``的博客-CSDN博客


1、tinyint类型

MySQL中的 TINYINT 类型是一种整数类型,用于存储小整数值,占用1个字节的存储空间。

下面是关于TINYINT类型的详解

数据范围和存储空间:

  • 有符号(默认):范围为-128到127,占用1字节的存储空间
  • 无符号:范围为0到255,占用1字节的存储空间

用途:

  • TINYINT通常用于存储布尔值(0或1),表示真或假。
  • 也可以用于存储较小的整数值。

有符号和无符号:

  • 默认情况下,TINYINT是有符号的,范围为 [-128,127]
  • 可以使用 UNSIGNED 关键字来声明TINYINT为无符号,范围变为【0,255】

存储方式:

  • TINYINT类型的值以二进制格式存储。对于有符号类型,最高位(最左边的位)表示正负号,‘0’ 表示正数,‘1’表示负数
  • 在使用时,MySQL会根据需要将二进制值转换为可读的整数形式。

💨 示例:

  • 数值越界测试

①创建一个TINYINT列:

 

②插入数据:

 

 ③查询数据:

【小结】 

  •  上述,我们已经成功的进行了相关的测试。

但是接下来,我在插入这样的数据,看最终是否还能成功的插入呢?

 【说明】

  1. MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。
  2. 可以通过UNSIGNED来说明某个字段是无符号的

  • 无符号案例
①创建一个TINYINT列:

 ②插入数据(注意范围):

 ③查询数据:

 

 

【注意】
  • 尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。
【小结】
总之,TINYINT类型是MySQL中的一种整数类型,适用于存储布尔值或较小的整数。
它占用较少的存储空间,查询和计算效率高。可以根据需要选择是否使用有符号或无符号的TINYINT类型。

2、bit类型

MySQL中的BIT类型是一种用于存储位字段(bit fields)的数据类型。

下面是关于BIT类型的详解

  • 基本语法:
bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。

存储空间

  • BIT数据类型占用的存储空间取决于定义时指定的位数,最大位数为64

位数限制

  • BIT类型可以定义的位数可以是1到64之间的任意整数

存储方式

  • BIT类型的数据以二进制形式进行存储

使用场景

  • BIT类型通常用于表示布尔值或位掩码。
  • 可以用于存储二进制标志,每个位表示一种状态,如开/关、启用/禁用等。

查询和计算操作

  • 查询和计算BIT类型的数据需要使用相关的位运算操作符,如按位与(&)、按位或(|)、按位异或(^)等

默认值

  • BIT类型的默认值‘1’,也可以使用b'xxx'或0bxxx的形式指定具体的二进制值

💨 示例:

①创建一个 bit 列:

 

 ②插入数据(注意范围):

  ③查询数据:

 【说明】

  1. 此时我们会发现很怪异的现象,a的数据10没有出现;
  2. 其实 bit 字段在显示时,是按照ASCII码对应的值显示,因此当我们插入 10之后没有任何显示

 

【注意】

如果我们有这样的值,只存放 0 1 ,这时可以定义 bit(1) 。这样可以节省空间

 

【小结】

总之,BIT类型是用于存储位字段的数据类型,可以指定位数范围,并以二进制形式进行存储。

它适用于存储布尔值或位掩码,并可以使用位运算操作符进行查询和计算操作。

需要注意的是:在操作BIT类型数据时,需要使用适当的位运算操作符来处理位级别的操作。


3、小数类型

float类型

MySQL中的FLOAT类型是一种浮点数类型,用于存储单精度浮点数。

下面是有关FLOAT类型的详解

  • 语法:
float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节

存储范围和精度

  • FLOAT类型占用4字节的存储空间。
  • 可以存储的范围为 [-3.402823466E+38,-1.175494351E-38]、[0]、[1.175494351E-38,3.402823466E+38] 之间的浮点数。
  • 最多可存储7位小数。

精度和舍入错误

  • FLOAT类型是近似值类型,并且以二进制形式存储。
  • 存在舍入错误的可能性,这意味着在进行计算时可能会出现轻微的精度损失。
  • 比较FLOAT类型的值时,可能需要使用误差范围进行判断,而不是简单的等于比较。

默认值

  • FLOAT类型的默认值为 ‘0’

查询和操作

  • FLOAT类型可以使用算术运算符(如加法、减法、乘法、除法等)进行计算。
  • 可以与其他数值类型进行混合运算,MySQL会自动进行类型转换。

存储方式

  • FLOAT类型的值以二进制格式存储,并使用IEEE 754标准表示。
  • 在使用时,MySQL会根据需要将二进制值转换为可读的浮点数形式。

💨 示例1:

  • 小数float(4,2)表示的范围是-99.99 ~ 99.99MySQL在保存值时会进行四舍五入。

 

💨 示例2:

  • 如果定义的是float(4,2) unsigned 这时,因为把它指定为无符号的数,范围是 0 ~ 99.99

 

【小结】

1、总之,FLOAT类型是MySQL中的一种浮点数类型,适用于存储具有小数部分的数值。

2、它占用较少的存储空间,并提供了一定的范围和精度。

3、然而,在进行浮点数计算时,需要注意舍入误差和精度损失可能带来的影响。如果需要更高的精度,可以考虑使用DOUBLE类型。


decimal

MySQL中的DECIMAL类型是一种精确数值类型,用于存储固定精度的小数值

下面是关于DECIMAL类型的详解

  • 语法:
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数

【说明】

  1. decimal(5,2) 表示的范围是 -999.99 ~ 999.99
  2. decimal(5,2) unsigned 表示的范围 0 ~ 999.99
  3. decimalfloat很像,但是有区别: floatdecimal表示的精度不一样

存储空间

  • DECIMAL类型的存储空间取决于定义时指定的精度和小数位数

精度和小数位数

  • DECIMAL类型需要指定精度和小数位数,例如DECIMAL(10, 2),其中10表示总位数,2表示小数位数
  • 精度范围为1到65,默认精度为10,默认小数位数为0

范围

  • DECIMAL类型可以存储从-10^(精度-小数位数)+1到10^(精度-小数位数)-1的数值

存储方式

  • DECIMAL类型使用定点表示法进行存储,以确保精确性

精确计算

  • DECIMAL类型的计算是精确的,不会有舍入误差

使用场景

  • DECIMAL类型适用于需要对小数进行精确计算的场景,如货币金额、精确统计数据等。
  • 由于DECIMAL类型的存储和计算是精确的,它比FLOAT和DOUBLE类型更适合处理需要高精度的小数值。

💨 示例:

【说明】

  1. float表示的精度大约是7位;
  2. decimal整数最大位数m65。支持小数最大位数d30。如果d被省略,默认为0.如果m被省略, 默认是10

💨 建议:如果希望小数的精度高,推荐使用decimal

【小结】

1、总之,DECIMAL类型是MySQL中的一种精确数值类型,用于存储固定精度的小数值。

2、它提供了精确的计算和存储,并适用于需要高精度和准确性的场景。

3、在定义DECIMAL列时,需要指定精度和小数位数,以满足具体的业务需求。


4、字符串类型

char

MySQL中的CHAR类型是一种固定长度的字符串类型,用于存储定长的字符数据。

下面是关于CHAR类型的详解

  • 语法:
char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255

存储空间

  • CHAR类型占用固定长度的存储空间,占用的字节数取决于定义时指定的长度

长度限制

  • CHAR类型需要在定义时指定长度,长度范围为1到255个字符,默认长度为1

填充空格

  • 如果存储的字符串长度小于定义的长度,将使用空格填充剩余的位置

查询效率

  • 由于CHAR类型是固定长度的,查询效率比可变长度的字符串类型(如VARCHAR)更高。因为在检索和比较时,不需要计算实际存储的字符串长度

存储方式

  • CHAR类型的字符串以定长的方式进行存储,不受实际存储内容的影响

使用场景

  • 适用于存储长度固定的字符串,如国家代码、性别、状态等。
  • CHAR类型通常用于存储较短的字符串,而不适用于存储可变长度的大文本。

💨 示例:

 

【说明】
  • char(2) 表示可以存放两个字符,可以是字母或汉字,但是不能超过2个, 最多只能是255

 

【小结】

1、CHAR类型是MySQL中的一种固定长度字符串类型,适用于存储定长的字符数据。

2、它占用固定的存储空间,效率较高,并且适合存储长度不变的字符串。

3、在定义CHAR列时,需要指定长度以满足具体的业务需求。


varchar

MySQL中的VARCHAR类型是一种可变长度的字符串类型,用于存储可变长度的字符数据。

下面是关于VARCHAR类型的详解

  • 语法:
varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节

存储空间

  • VARCHAR类型占用实际存储的字节数,根据存储的字符串长度而变化

长度限制

  • VARCHAR类型需要在定义时指定最大长度,长度范围为1到65535个字符,默认长度为1

存储效率

  • 由于VARCHAR类型是可变长度的,存储的实际字节数取决于存储的内容长度,对于较短的字符串,占用的存储空间较小

查询效率

  1. 由于VARCHAR类型是可变长度的,查询效率相对于CHAR类型可能稍低;
  2. 因为在检索和比较时,需要计算实际存储的字符串长度。

存储方式

  • VARCHAR类型的字符串以变长方式进行存储,只占用实际存储内容所需的空间

使用场景

  1. 适用于存储长度可变的字符串,如用户名、电子邮件地址、文章内容等。
  2. VARCHAR类型通常用于存储较长的字符串,尤其是长度不确定的情况。

💨 示例:

 

【说明】
  1. 关于varchar(len),len到底是多大,这个len值,和表的编码密切相关:
  2. varchar长度可以指定为 [0,65535] 之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是 65532
  3. 当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占 3个字节];
  4. 如果编码是gbkvarchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符 占用2字节)

 

【小结】

1、总之,VARCHAR类型是MySQL中的一种可变长度字符串类型,适用于存储可变长度的字符数据

2、它根据实际存储内容的长度来占用存储空间,效率较高,并适用于存储长度不确定的字符串。

 


charvarchar比较

我给大家整理了一张表格帮助大家理解记忆:

 

如何选择定长或变长字符串?
  • 如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5
  • 如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,但是你要保证最长的能存的进去。
  • 定长的磁盘空间比较浪费,但是效率高。
  • 变长的磁盘空间比较节省,但是效率低。
  • 定长的意义是,直接开辟好对应的空间
  • 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。

日期和时间类型

MySQL中提供了多种日期和时间类型,用于存储日期、时间和日期时间数据

下面是关于MySQL日期和时间类型的详解

  1. DATE类型:用于存储日期值(年、月、日),格式为'YYYY-MM-DD'。范围从'1000-01-01'到'9999-12-31'。

  2. TIME类型:用于存储时间值(时、分、秒),格式为'HH:MM:SS'。范围从'-838:59:59'到'838:59:59'。

  3. DATETIME类型:用于存储日期和时间值,格式为'YYYY-MM-DD HH:MM:SS'。范围从'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。

  4. TIMESTAMP类型:与DATETIME类型类似,但范围限制为'1970-01-01 00:00:01'到'2038-01-19 03:14:07'。通常用于记录某条数据的创建或修改时间。

  5. YEAR类型:存储年份值,格式为'YYYY'。范围从1901到2155。

  6. INTERVAL类型:用于表示时间间隔或时间差,可以与日期或时间类型相加或相减。

💨 示例:

 

【小结】

1、MySQL提供了多种日期和时间类型,可根据具体需求选择合适的类型来存储日期、时间和日期时间数据。


enumset

MySQL中的ENUM和SET类型是用于存储具有固定取值的数据的列类型

下面是关于ENUM和SET类型的详解

  • 语法:
enum:枚举,“单选”类型;enum('选项1','选项2','选项3',...);

【说明】

  1. 该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;
  2. 而且出于效率考 虑,这些值实际存储的是“数字,因为这些选项的每个选项值依次对应如下数字:1,2,3,....最多65535 个;
  3. 当我们添加枚举值时,也可以添加对应的数字编号。
  • 语法:
set:集合,“多选”类型;set('选项值1','选项值2','选项值3', ...);

【说明】

  1. 该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;
  2. 而且出于效率 考虑,这些值实际存储的是“数字,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32.... 最多64个。

说明:不建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读。

💨 示例:

有一个调查表 votes ,需要调查人的喜好, 比如(登山,游泳,篮球,武术)中去选择 ( 可以多选 ) , (男,女)[ 单选 ]

  •  插入数据:

  •  有如下数据,想查找所有喜欢登山的人:

  •  我们可以发现不能查询出所有,爱好为登山的人
集合查询使用 find_ in_ set 函数:

find_in_set(sub,str_list)
  1. 如果 sub str_list 中,则返回下标;如果不在,返回0
  2. str_list 用逗号分隔的字符串。
mysql> select find_in_set('a', 'a,b,c');
+---------------------------+
| find_in_set('a', 'a,b,c') |
+---------------------------+
| 1 |
+---------------------------+
mysql> select find_in_set('d', 'a,b,c');
+---------------------------+
| find_in_set('d', 'a,b,c') |
+---------------------------+
| 0 |
+---------------------------+

查询爱好登山的人:

 


总结

以上便是mysql数据类型的全部知识。感谢大家的支持与观看!!!

 

相关文章:

【mysql】—— 数据类型详解

序言: 本期我将大家认识关于 mysql 数据库中的基本数据类型的学习。通过本篇文章,我相信大家对mysql 数据类型的理解都会更加深刻。 目录 (一)数据类型分类 (二)数值类型 1、tinyint类型 2、bit类型 …...

kafka常用命令

查看主题 ./kafka-topics.sh --list --bootstrap-server 10.1.1.2:9092 创建主题 ./kafka-topics.sh --bootstrap-server 10.1.1.2:9092 --create --topic test_topic --partitions 1 查看消费者列表--list ./kafka-consumer-groups.sh --bootstrap-server 10.1.1.2:9092 -…...

数字图像处理(番外)图像增强

图像增强 图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。 图像对比度 图像对比度计算方式如下: C ∑ δ δ ( i , j …...

flutter:轮播

前言 介绍几个比较有不错的轮播库 swipe_deck 与轮播沾边,但是更多的是一种卡片式的交互式界面设计。它的主要概念是用户可以通过左右滑动手势浏览不同的卡片,每张卡片上都有不同的信息或功能。 Swipe deck通常用于展示图片、产品信息、新闻文章、社…...

高忆管理:股票投资策略是什么?有哪些?

在进行股票买卖过程中,出资者需求有自己的方案和出资战略,并且主张严格遵从出资战略买卖,不要跟风操作。那么股票出资战略是什么?有哪些?下面就由高忆管理为我们剖析: 股票出资战略简略来说便是能够协助出资…...

为公网SSH远程Ubuntu配置固定的公网TCP端口地址主图

文章目录 为公网SSH远程Ubuntu配置固定的公网TCP端口地址 为公网SSH远程Ubuntu配置固定的公网TCP端口地址 在上篇文章中,我们通过cpolar建立的临时TCP数据隧道,成功连接了位于其他局域网下的Ubuntu系统,实现了不同操作系统、不同网络下的系统…...

【前端知识】React 基础巩固(四十一)——手动路由跳转、参数传递及路由配置

React 基础巩固(四十一)——手动路由跳转、参数传递及路由配置 一、实现手动跳转路由 利用 useNavigate 封装一个 withRouter(hoc/with_router.js) import { useNavigate } from "react-router-dom"; // 封装一个高阶组件 function withRou…...

Qt几种字符类型的相互转换

Qt几种字符类型的相互转换 将const QString转换为const char*将const char*转换为const QStringQstring转换为string把string转换为QstringQt中弹出一个窗口 将const QString转换为const char* #include <QString> #include <iostream>int main() {const QString …...

软件测试员的非技术必备技能

成为软件测试人员所需的技能 非技术技能 以下技能对于成为优秀的软件测试人员至关重要。 将您的技能组合与以下清单进行比较&#xff0c;以确定软件测试是否适合您 - 分析技能&#xff1a;优秀的软件测试人员应具备敏锐的分析能力。 分析技能将有助于将复杂的软件系统分解为…...

渗透测试:Linux提权精讲(二)之sudo方法第二期

目录 写在开头 sudo expect sudo fail2ban sudo find sudo flock sudo ftp sudo gcc sudo gdb sudo git sudo gzip/gunzip sudo iftop sudo hping3 sudo java 总结与思考 写在开头 本文在上一篇博客的基础上继续讲解渗透测试的sudo提权方法。相关内容的介绍与背…...

ansible安装lnmp(集中式)

文章目录 一、安装nginx二、安装mysql三、安装php测试&#xff1a; 一、安装nginx - name: the nginx playhosts: webserversremote_user: roottasks:- name: stop firewalld #关闭防火墙service: namefirewalld statestopped enabledno- name: selinux stopc…...

Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目

Tomcat 一、Tomcat简介二、Tomcat基本使用三、Maven创建Web项目3.1 Web项目结构3.2开发完成部署的Web项目3.3创建Maven Web项目3.3.1方式一3.3.2方式二&#xff08;个人推荐&#xff09; 总结 一、Tomcat简介 Web服务器&#xff1a; Web服务器是一个应用程序&#xff08;软件&…...

微信小程序测试要点

一、什么是小程序&#xff1f; 可以将小程序理解为轻便的APP&#xff0c;不用安装就可以使用的应用。用户通过扫一扫或者搜索的方式&#xff0c;就可以打开应用。 小程序最主要的特点是内嵌于微信之中&#xff0c;而使用小程序的目的是为了能够方便用户不在受下载多个APP的烦…...

TCP网络通信编程之netstat

【netstat指令】 【说明】 &#xff08;1&#xff09;Listening 表示某个端口在监听 &#xff08;2&#xff09;如果有一个外部程序&#xff08;客户端&#xff09;连接到该端口&#xff0c;就会显示一条连接信息 &#xff08;3&#xff09;指令netstat -anb 可以参看是那个…...

Stable Diffusion:网页版 体验 / AI 绘图

一、官网地址 Stable Diffusion Online 二、Stable Diffusion AI 能做什么 Stable Diffusion AI绘图是一种基于Stable Diffusion模型的生成式AI技术&#xff0c;能够生成各种类型的图像&#xff0c;包括数字艺术、照片增强和图像修复等。以下是一些可能的应用&#xff1a; …...

一文了解JavaScript 与 TypeScript的区别

TypeScript 和 JavaScript 是两种互补的技术&#xff0c;共同推动前端和后端开发。在本文中&#xff0c;我们将带您快速了解JavaScript 与 TypeScript的区别。 一、TypeScript 和 JavaScript 之间的区别 JavaScript 和 TypeScript 看起来非常相似&#xff0c;但有一个重要的区…...

从更广阔的角度看待产业互联网,它展现的是一次重构的过程

如果产业互联网仅仅只是在传统的供求关系之下&#xff0c;如果产业互联网仅仅只是在传统的平衡之下&#xff0c;缺少了一次对于供求关系的重新建构&#xff0c;那么&#xff0c;所谓的产业互联网&#xff0c;依然是无法跳出以往的发展困境&#xff0c;依然是无法摆脱以往的发展…...

【PHP】简记问题:使用strtotime(‘-1 month‘, time)获取上个月第一天时间戳出错

发生场景 在7月31号是查看统计上个月订单购买总金额&#xff0c;查询结果为0 $preMonthStart strtotime(date(Ym01, strtotime("-1 month"))); $curMonthStart strtotime(date(Ym01)); # 统计上月份实际订单金额 $sql "SELECT count(money) FROM orders WH…...

舌体分割的初步展示应用——依托Streamlit搭建demo

1 前言 去年在社区发布了有关中医舌象诊断的博文&#xff0c;其中舌象识别板块受到了极高的关注和关注。&#x1f60a;最近&#xff0c;我接触到了Python的Streamlit库&#xff0c;它可以帮助数据相关从业人员轻松搭建数据看板。本文将介绍如何使用Streamlit构建舌体分割的演示…...

从Vue层面 - 解析发布订阅模式和观察者模式区别

目录 前言一、发布订阅模式什么是发布订阅模式&#xff1f;应用场景 二、观察者模式1&#xff09;什么是观察者模式&#xff1f;2&#xff09;应用场景3&#xff09;vue中的观察者模式观察者&#xff08;订阅者&#xff09; - Watcher目标者&#xff08;发布者&#xff09; - D…...

面向对象之_多态_1

目录 一. 多态 多态是什么 二. 多态的构成条件 1. 虚函数 2. 虚函数重写&#xff08;隐藏&#xff09; 3. 父类型的引用或者指针调用 4. 多态的特殊情况 1) 子类可以不加 virtual 关键字 2) 协变 三. 关键字 1. virtual 2. final 3. override 四. 多态的原理 1. 虚…...

Spring学习笔记之spring概述

文章目录 Spring介绍Spring8大模块Spring特点 Spring介绍 Spring是一个轻量级的控制反转和面向切面的容器框架 Spring最初的出现是为了解决EJB臃肿的设计&#xff0c;以及难以测试等问题。 Spring为了简化开发而生&#xff0c;让程序员只需关注核心业务的实现&#xff0c;尽…...

旧项目导入Eclipse时文件夹看起来乱七八糟,无从下手的解决办法(无main或webapp等文件夹)

首先&#xff0c;如果没有main或java/resource/webapp等文件夹&#xff0c;那就自己在src下面创建一个&#xff0c;只要对应关系与我下图左边红框一致即可&#xff0c;创建完之后java文件移到java文件夹下&#xff0c;资源文件例如.properties、老项目的数据源定义.INI文件、日…...

Reinforcement Learning with Code 【Code 2. Tabular Sarsa】

Reinforcement Learning with Code 【Code 2. Tabular Sarsa】 This note records how the author begin to learn RL. Both theoretical understanding and code practice are presented. Many material are referenced such as ZhaoShiyu’s Mathematical Foundation of Rei…...

服务调用---------Ribbon和Feign

目录​​​​​​​ 1、Ribbon 1.1 Ribbon简介 1.2 Ribbon负载均衡 负载均衡原理 负载均衡策略 Ribbon和Nginx的区别 1.3 服务调用和Ribbon负载均衡实现 2、Feign&openFeign 3、Feign支持的配置 日志功能 连接池 feign-api远程包 1、Ribbon 1.1 Ribbon简介 Ribb…...

app自动化测试之Appium问题分析及定位

使用 Appium 进行测试时&#xff0c;会产生大量日志&#xff0c;一旦运行过程中遇到报错&#xff0c;可以通过 Appium 服务端的日志以及客户端的日志分析排查问题。 Appium Server日志-开启服务 通过命令行的方式启动 Appium Server&#xff0c;下面来分析一下启动日志&#…...

婚庆服务小程序app开发方案详解

开发一款婚庆行业服务小程序有哪些功能呢&#xff1f; 1、选择分类 选择婚庆、婚车、婚宴、司仪、彩妆、婚庆用品、跟拍、摄影等&#xff0c;筛选出对应的商家 2、选择商家 选择分类后&#xff0c;可以选择商家&#xff0c;查看各个商家的详细介绍情况。 3、选择服务套餐 各…...

集合简述

集合ListArrayListLinkedList SetHashSetTreeSet MapHashMapTreeMap 集合与数组的区别 集合 集合是java中的一个容器&#xff0c;可以在里面存放数据&#xff0c;容量可以发生改变 从集合框架结构可以分析得知&#xff1a; 1、集合主要分为Collection和Map两个接口 2、Collecti…...

常见的软件测试面试题汇总

一、 你们的测试流程是怎么样的&#xff1f; 答&#xff1a;1.项目开始阶段&#xff0c;BA&#xff08;需求分析师&#xff09;从用户方收集需求并将需求转化为规格说明书&#xff0c;接 下来在项目组领导会组织需求评审。 2.需求评审通过后&#xff0c;BA 会组织项目经理…...

学习笔记|大模型优质Prompt开发与应用课(二)|第二节:超高产文本生成机,传媒营销人必备神器

文章目录 01 文字写作技能的革新&#xff0c;各行各业新机遇四大类常见文字工作新闻记者的一天新闻记者的一天–写策划prompt 新闻记者的一天–排采访prompt生成结果prompt生成结果 大模型加持&#xff0c;文字写作我们如何提效营销创作营销创作-使用预置法为不同平台生成文案p…...