数据从前端传到后端入库过程分析
数据从前端传到后端入库过程分析
概述
积累了一些项目经验,成长为一个老程序员了,自认为对各种业务和技术都能得心应手的应对了,殊不知很多时候我们借助了搜索引擎的能力,当然现在大家都是通过AI来武装自己。
今天要分析的话题是数据从前端传到后端再到插入数据库的数据类型转换过程。
有哪些数据类型
前端
在前端开发中,JavaScript 是最常用的编程语言之一。JavaScript 拥有多种数据类型,这些数据类型可以分为基本数据类型和引用数据类型。
基本数据类型
基本数据类型是存储在栈内存中的简单数据段,占用的内存较小,可以直接操作它们的值。JavaScript 的基本数据类型包括:
-
String:字符串,用于表示文本值,例如 "Hello, World!"1。
-
Number:数字,可以是整数或浮点数,例如 42 或 3.142。
-
Boolean:布尔值,有两个值:true 和 false2。
-
Null:表示空值,是一个特殊的关键字,表示变量没有值1。
-
Undefined:表示未定义,是一个特殊的关键字,表示变量未赋值1。
-
Symbol:ES6 引入的一种新的原始数据类型,表示独一无二的值3。
-
BigInt:可以表示任意大的整数,超过了 Number 的安全整数限制1。
引用数据类型
引用数据类型是存储在堆内存中的对象,变量中保存的是一个指针,指向内存堆中的实际值。JavaScript 的引用数据类型包括:
-
Object:对象,是一种复合数据类型,可以包含多个键值对2。
-
Array:数组,是一种特殊的对象,用于存储有序的元素集合3。
-
Function:函数,是一种可调用的对象,用于封装可执行的代码块3。
-
RegExp:正则表达式,是一种用于匹配字符串模式的特殊对象3。
-
Date:日期对象,用于处理日期和时间
后端
这里主要以Java为例来进行讲解,Java语言中的数据类型分为两大类:基本数据类型和引用数据类型。基本数据类型包括四种整数型、两种浮点型、一种字符型和一种布尔型。引用数据类型则包括类(Class)、接口(Interface)和数组(Array)。
基本数据类型
基本数据类型是Java语言预定义的,它们的大小和值的范围是固定的。Java定义了以下几种基本数据类型:
-
整数型:包括byte(1字节)、short(2字节)、int(4字节)和long(8字节)。
-
浮点型:包括float(4字节)和double(8字节)。
-
字符型:char(2字节),用于表示单个字符。
-
布尔型:boolean,用于表示真(true)或假(false)。
每种基本数据类型都有对应的包装类,例如Integer是int的包装类,Double是double的包装类。包装类提供了一些方法来操作基本数据类型的值,同时也允许使用泛型。
引用数据类型
引用数据类型指向一个对象,它们引用的是对象在内存中的地址。Java中的引用数据类型主要包括:
-
类(Class):定义了一组具有相同属性(变量)和行为(方法)的对象的模板。
-
接口(Interface):定义了一组方法规范,由实现接口的类去具体实现。
-
数组(Array):用于存储固定大小的同类型元素。
引用数据类型的默认值是null,表示它们没有指向任何对象。
数据库
这里主要以MySQL为例进行讲解,MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
数值类型
日期和时间类型
字符串类型
上面罗列了前后端以及数据库支持的数据类型,下面整理了一些数据的对应关系:
实践分析
本小节通过实践demo来对所有数据类型进行分析,通过实践案例讲解的方式来深入理解各数据类型的转换机制。
首先创建了一个如下涵盖大部分mysql数据类型的表:
然后创建了一个穷举所有数据类型的实体对象:
之后我们编写一个测试方法:
准备完毕之后我们开始进行debug实验,接口传参如下:
Controller层接参如下:
可以看到参数都能够正确接收到,并且根据实体对象类型进行了转换,入库之后如下所示:
这是一个很有趣的小实验,很多人在开发者懵懵懂懂的,感觉自己都会了,但是一单严格问就答不上来了,如果前后端到入库数据类型对应关系没搞清,又怎么能够写出优雅的代码,所以建议大家都是实际验证一下自己的猜想,巩固好基础知识点。
总结
本篇博客构思的挺久才开始下笔,出品一篇文章的确来之不易,从有了想法之后开始构思和收集材料,另外技术文章尽可能具备实战性,所以最后我都习惯配合实践demo来说明,希望大家看完文章有所收获。
时光荏苒,已经是25年了,新的一年大家继续加油!
相关文章:

数据从前端传到后端入库过程分析
数据从前端传到后端入库过程分析 概述 积累了一些项目经验,成长为一个老程序员了,自认为对各种业务和技术都能得心应手的应对了,殊不知很多时候我们借助了搜索引擎的能力,当然现在大家都是通过AI来武装自己。 今天要分析的话题是…...

macOS如何进入 Application Support 目录(cd: string not in pwd: Application)
错误信息 cd: string not in pwd: Application 表示在当前目录下找不到名为 Application Support 的目录。可能的原因如下: 拼写错误或路径错误:确保你输入的目录名称正确。目录名称是区分大小写的,因此请确保使用正确的大小写。正确的目录名…...

第38周:猫狗识别 (Tensorflow实战第八周)
目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 再次检查数据 2.3 配置数据集 2.4 可视化数据 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 四、编译 五、训练模型 六、模型评估 七、预测 总结 前言…...

【2024年华为OD机试】 (A卷,200分)- 计算网络信号、信号强度(JavaScriptJava PythonC/C++)
一、问题描述 题目解析 问题描述 我们有一个 m x n 的二维网格地图,每个格子可能是以下几种情况之一: 0:表示该位置是空旷的。x(正整数):表示该位置是信号源,信号强度为 x。-1:表示该位置是阻隔物,信号无法直接穿透。信号源只有一个,阻隔物可能有多个。信号在传播…...

【go语言】数组和切片
一、数组 1.1 什么是数组 数组是一组数:数组需要是相同类型的数据的集合;数组是需要定义大小的;数组一旦定义了大小是不可以改变的。 1.2 数组的声明 数组和其他变量定义没有什么区别,唯一的就是这个是一组数,需要给…...

2025美赛MCM数学建模A题:《石头台阶的“记忆”:如何用数学揭开历史的足迹》(全网最全思路+模型)
✨个人主页欢迎您的访问 ✨期待您的三连 ✨ 《石头台阶的“记忆”:如何用数学揭开历史的足迹》 目录 《石头台阶的“记忆”:如何用数学揭开历史的足迹》 ✨摘要✨ ✨引言✨ 1. 引言的结构 2. 撰写步骤 (1)研究背景 &#…...

使用 Docker Compose 一键启动 Redis、MySQL 和 RabbitMQ
目录 一、Docker Compose 简介 二、服务配置详解 1. Redis 配置 2. MySQL 配置 3. RabbitMQ 配置 三、数据持久化与时间同步 四、部署与管理 五、总结 目录挂载与卷映射的区别 现代软件开发中,微服务架构因其灵活性和可扩展性而备受青睐。为了支持微服务的…...

新增自定义数据功能|UWA Gears V1.0.7
UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台,提供了实时监测和截帧分析功能,帮助您精准定位性能热点,提升应用的整体表现。 本次版本更新新增了自定义数据功能,支持灵活定义和捕获关键性能指标,满足特…...

docker 简要笔记
文章目录 一、前提内容1、docker 环境准备2、docker-compose 环境准备3、流程说明 二、打包 docker 镜像1、基础镜像2、国内镜像源3、基础的dockerfile4、打包镜像 四、构建运行1、docker 部分2、docker-compose 部分2.1、构建docker-compose.yml2.1.1、同目录构建2.1.2、利用镜…...

在Ubuntu上使用Apache+MariaDB安装部署Nextcloud并修改默认存储路径
一、前言 Nextcloud 是一款开源的私有云存储解决方案,允许用户轻松搭建自己的云服务。它不仅支持文件存储和共享,还提供了日历、联系人、任务管理、笔记等丰富的功能。本文将详细介绍如何在 Ubuntu 22.04 LTS 上使用 Apache 和 MariaDB 安装部署 Nextcl…...

【JavaEE】-- 计算机是如何工作的
文章目录 1. 冯诺依曼体系(VonNeumann Architecture)2. CPU 基本工作流程2.1 寄存器(Register)和 内存(RAM)2.2 控制单元 CU(ControlUnit)2.3 指令(Instruction) 3. 操作系统(OperatingSystem)3.1 操作系统的定位3.2 什么是进程/任务(Process…...

政安晨的AI大模型训练实践三:熟悉一下LF训练模型的WebUI
政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 目录 启动WebUI 微调模型 LLaMA-Factory 支持通过 WebUI 零代码微调大语言模型。 启动Web…...

基于微信小程序的网上订餐管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

科技快讯 | 理想官宣:正式收费!WeChat 港币钱包拓宽商户网络;百川智能发布深度思考模型Baichuan-M1-preview
理想官宣:正式收费! 1月23日,理想汽车宣布,理想超充站超时占用费正式运营。触发超时占用费的条件为充电结束后15分钟内未将充电枪插回充电桩,收费标准为2元/分钟,单次封顶200元。理想汽车将在充电结束的四个…...

【java数据结构】map和set
【java数据结构】map和set 一、Map和Set的概念以及背景1.1 概念1.2 背景1.3 模型 二、Map2.1 Map说明2.2 Map的常用方法 三、Set3.1 Set说明3.2 Set的常用方法 四、Set和Map的关系 博客最后附有整篇博客的全部代码!!! 一、Map和Set的概念以及…...

飞牛NAS安装过程中的docker源问题
采用CloudFlare进行飞牛NAS的远程访问 【安全免费】无需公网IP、端口号,NAS外网访问新方法_网络存储_什么值得买 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<EOF {"registry-mirrors": ["https://docker.1panel.dev&quo…...

Linux(Centos 7.6)命令详解:dos2unix
1.命令安装 dos2unix 命令默认情况下是没有安装的,如配置yum源,可通过yum安装命令如下: yum install dos2unix dos2unix 有一个对立的命令unix2dos,也需要yum安装,一般使用不到这里不做过多解释,具体参数…...

Linux MySQL离线安装
一、准备工作 1. 下载MySQL安装包 访问MySQL官方网站,选择适合您Linux系统的MySQL版本进行下载。通常推荐下载Generic Linux (glibc 2.12)版本的.tar.gz压缩包,例如mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz。将下载好的安装包拷贝到Linux服务器的某…...

声明,这些内容和我无关
声明,下面这些内容和我无关,不是我写的,买了我不负责答疑,也不负责其他相关。 一下内容都不是我写的,系统自己加上去的,和我无关,我不负责答疑也不负责其他。...

ISO:摄影中的光线敏感度密码
目录 一、ISO 究竟是什么 二、ISO 与光线的关系 (一)低 ISO 在充足光线下的表现 (二)高 ISO 在光线不足时的作用 三、ISO 对画质的影响 (一)低 ISO 带来的优质画质 (二)高 IS…...

长短期记忆网络LSTM
视频链接 1.LSTM与RNN的区别 RNN想把所有信息都记住,不管是有用的信息还是没用的信息,并且有梯度爆炸或者梯度消失的问题 而LSTM设计了一个记忆细胞,具备选择记忆功能,可以选择记忆重要信息,过滤掉噪声信息࿰…...

2. 握手问题python解法——2024年省赛蓝桥杯真题
原题传送门:1.握手问题 - 蓝桥云课 问题描述 小蓝组织了一场算法交流会议,总共有 50人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。但有 7 个人,…...

poi在word中打开本地文件
poi版本 5.2.0 方法1:使用XWPFFieldRun(推荐) 比如打开当前相对路径的aaaaa.docx XWPFFieldRun run paragraph.createFieldRun();CTRPr ctrPr run.getCTR().addNewRPr();CTFonts font ctrPr.addNewRFonts();// 设置字体font.setAscii(&quo…...

国产编辑器EverEdit - 输出窗口
1 输出窗口 1.1 应用场景 输出窗口可以显示用户执行某些操作的结果,主要包括: 查找类:查找全部,筛选等待操作,可以把查找结果打印到输出窗口中; 程序类:在执行外部程序时(如:命令窗…...

整数的个数(信息学奥赛一本通-1067)
【题目描述】 给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。 【输入】 输入有两行:第一行包含一个正整数k,第二行包含k个正整数…...

ios swift画中画技术尝试
继上篇:iOS swift 后台运行应用尝试失败-CSDN博客 为什么想到画中画,起初是看到后台模式里有一个picture in picture,去了解了后发现这个就是小窗口视频播放,方便用户执行多任务。看小窗口视频的同时,可以作其他的事情…...

MyBatis 写法
MyBatis 高效使用技巧 常见 MyBatis 使用技巧,这些技巧有助于简化数据库操作,提高开发效率,并增强系统的性能。 1. 动态 SQL 动态 SQL 让开发者能够依据参数灵活地构建 SQL 语句,避免了手动拼接字符串带来的复杂性和错误风险。…...

Three城市引擎地图插件Geo-3d
一、简介 基于Three开发,为Three 3D场景提供GIS能力和城市底座渲染能力。支持Web墨卡托、WGS84、GCJ02等坐标系,支持坐标转换,支持影像、地形、geojson建筑、道路,植被等渲染。支持自定义主题。 二、效果 三、代码 //插件初始化…...

【贪心算法】洛谷P1106 - 删数问题
2025 - 01 - 22 - 第 46 篇 【洛谷】贪心算法题单 - 【贪心算法】 - 【学习笔记】 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 目录 文章目录 目录P1106 删数问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路代码 P1106 删数问题 题目描述 键盘输入一个高…...

WPS计算机二级•幻灯片的页面布局
听说这是目录哦 设置PPT页面尺寸🖼️PPT母版怎么用🎨巧用PPT母版统一修改 字体颜色与背景🎡如何快速更改应用 幻灯片中的不同母版👑能量站😚 设置PPT页面尺寸🖼️ 在制作PPT时,我们需要先选定一…...