【SpringBoot_Project_Actual combat】 Summary of Project experience_需要考虑的问题
无论是初学者还是有经验的专业人士,在学习一门新的IT技术时,都需要采取一种系统性的学习方法。那么作为一名技术er,你是如何系统的学习it技术的呢。
一、DB Problems
- 数据库数据类型与java中数据类型对应问题?
MySql数据库和java中数据类型的对应关系:
类型名称
source
( ఠൠఠ )ノ~source-笔记:MySql数据库和java中数据类型的对应关系
关于Mysql中如何选用这BigDecimal和double
- 首先与java不同的是mysql是用来持久化数据的,而java中使用的数据一般更多的是过一下内存;
- 数据库都要除了指定数据类型指外还需要指定精度,因此在DB中Double计算时精度的丢失比Java高得多;
因为Java默认精确到15-16位了;- 更改数据类型的成本,Mysql比Java代码要难得多;考虑到以上与java中不同几点,做点个人使用总结:
- 与商业金融相关字段要使用Decimal来表示,如金额,费率等字段;
- 参与各类计算如加,减,乘,除,sum,avg等等,也要使用Decimal;
- 经纬度,可以使用double来表示,这个可参考Java,只要保证精度范围即可;
- 如果确实不确定使用什么double或Decimal哪种类型合适,那最好使用Decimal,毕竟稳定,安全高于一切;
原文链接
贴贴-java.sql.Types,数据库字段类型,java数据类型的对应关系
二、关于“创建时间”&&“更新时间”问题
MySQL数据库之MySQL自动设置字段create_time和update_time
reference structurecreate table `product`( `id` BIGINT(20) not null AUTO_INCREMENT COMMENT '', `name` varchar(20) DEFAULT NULL COMMENT '', `price` decimal(10,2)DEFAULT NULL COMMENT '', `description` varchar(255) DEFAULT NULLCOMMENT '', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) );
Scheme 1
当我们创建业务表的时候 通常都需要设置create_time 和 update_time 但是通常需要在代码中设置好时间后再插入数据库;
-
CURRENT_TIMESTAMP
字段设置后 当insert数据时 mysql会自动设置当前系统时间 赋值给该属性字段 -
ON UPDATE CURRENT_TIMESTAMP
字段设置后 当update数据时 并且 成功发生更改时 mysql会自动设置当前系统时间 赋值给该属性字段 -
create_time
设置CURRENT_TIMESTAMP
属性 -
update_time
设置ON UPDATE CURRENT_TIMESTAMP
属性
我们在代码中 就无需再手动给这两个参数赋值 节省了一定代码量
————————————————
直接在数据库中设置默认字段
创建的时候设置当前时间
·
DEFAULT CURRENT_TIMESTAMP
更新的时候设置更新时间为当前时间
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Scheme 2
编写代码实现;需要编写代码
通常用于表建好了,突然发现还需要给字段自动设置系统时间,此时可使用代码来实现此功能/效果。
- 在product实体类中添加新属性
private Timestamp mqttTime
; - 获取当前时间存入数据库:
Date date=new Date();
String nowTime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
Timestamp timestamp = Timestamp.valueOf(nowTime);//时间转换 java.util.Date是java.sql.Date的父类
- 然后把这个timestamp 存入数据库
objectName.setMqttTime(timestamp);
application sence
应用场景:
1、在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间;
2、在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录修改时间;
achievement
实现方式:
1、将字段类型设为 TIMESTAMP
2、将默认值设为 CURRENT_TIMESTAMP
article–mysql
tips
在 MySQL 中,datetime 数据类型支持使用 CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP。
例如,您可以在创建表时将 CURRENT_TIMESTAMP 用作默认值:
CREATE TABLE my_table (id INT PRIMARY KEY,created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
在这个例子中,如果没有为 created_at 列提供值,则会将当前时间作为默认值添加到该列中。 您还可以在定义列时使用 ON UPDATE
CURRENT_TIMESTAMP,以在更新行时自动将当前时间添加到 datetime 类型的列中:
CREATE TABLE my_table (id INT PRIMARY KEY,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
在这个例子中,每次更新行时都会将当前时间添加到 updated_at 列中。如果未更新 updated_at 列,则其值将保持不变。
请注意,在 MySQL 5.6.5 及更高版本中,timestamp 类型也支持使用 DEFAULT CURRENT_TIMESTAMP 和
ON UPDATE CURRENT_TIMESTAMP。但是,timestamp 类型与 datetime
类型略有不同,因此使用时需要特别小心.
datetime 和 timestamp 区别
datetime 和 timestamp 都是 MySQL
中用于存储日期和时间的数据类型。它们都可以存储相同的日期和时间值,但它们有一些关键的区别。存储空间:在 MySQL 中,timestamp 类型采用 4 字节存储空间,而 datetime 类型采用 8 字节。
范围:datetime 类型可以存储从 1000 年到 9999 年的日期和时间,而 timestamp 类型仅能存储从 1970 年到
2038 年的日期和时间。这是因为 timestamp 类型使用 Unix 时间戳来存储日期和时间,并且 Unix 时间戳只能表示从
1970 年 1 月 1 日至 2038 年 1 月 19 日之间的时间。精度:datetime 类型的精度为秒级别,而 timestamp 类型的精度为毫秒级别。
综上所述,如果您需要存储较早或较晚的日期和时间,则应该使用 datetime 类型。另外,如果您需要更高的精度,则应该使用
timestamp 类型。如果您不确定哪种类型更适合您的需求,请根据您的具体情况进行选择。
三、学习时的具体操作
提示:可介绍你是如何建立基础知识、实际操作、进行整理和总结的
四、如何巩固学习
提示:可阐述你是如何形成更系统和清晰的知识体系并进行回顾的
提醒:以上内容仅做参考,可自行发散。在发布作品前,请把不需要的内容删掉。
相关文章:

【SpringBoot_Project_Actual combat】 Summary of Project experience_需要考虑的问题
无论是初学者还是有经验的专业人士,在学习一门新的IT技术时,都需要采取一种系统性的学习方法。那么作为一名技术er,你是如何系统的学习it技术的呢。 一、DB Problems 数据库数据类型与java中数据类型对应问题? MySql数据库和java…...

恒容容器放气的瞬时流量的计算与合金氢化物放氢流量曲线的计算
有时候,你会遇到一个问题,该问题的描述如下: 你有一个已知体积的容器,设容器体积为V,里面装有一定压力(初始压力)的气体,如空气或氢气等,设初始压力为1MPa,容器出口连接着一个阀门开…...
网络编程_UDP通信
网络编程_UDP通信 1. TCP与UDP2. 使用UDP通信3. sendto与recvfrom、recv4.实例实例1: 服务器接收、客户端发送实例2:服务器收发、客户方发送、接收。1. TCP与UDP 当使用网络套接字通信时, 套接字的“域”都取AF_INET; 套接字的type: SOCK_STREAM 此时,默认使用TCP协议进行…...

windows修改Pycharm的右键打开方式
title: windows中open floder as Pycharm太长了怎么修改 date: 2023-06-04 author: IoT_H2 tags: windows系统问题 categories: Markdown 问题描述: Pycharm这一栏这么长,长的我实在是很难受,事实上Jetbrains家的软件都是这个鸟模样 导…...
Python入门(十四)函数(二)
函数(二) 1.传递实参1.1 位置实参1.2 关键字实参1.3 默认值 作者:xiou 1.传递实参 函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式很多:可使用位置实参,这要求实参…...

Allure测试报告定制全攻略,优化你的Web自动化测试框架!
目录 前言: 1. Allure测试报告简介 2. Web自动化测试框架简介 3. 封装Web自动化框架 3.1 安装Selenium 3.2 封装Selenium 3.3 定制Allure测试报告 3.3.1 适配翻译插件 3.3.2 定制测试报告样式 4. 示例代码 5. 总结 前言: 随着现在Web应用的普…...

推荐系统算法详解
文章目录 基于人口统计学的推荐算法用户画像 基于内容的推荐算法相似度计算基于内容推荐系统的高层次结构特征工程数值型特征处理类别特征处理时间型特征处理统计型特征处理 推荐系统常见反馈数据基于UGC的推荐TF-IDFTF-IDF算法示例1. 引入依赖2. 定义数据和预处理3. 进行词数统…...

企业网站架构部署与优化之LAMP
LAMP LAMP概述1、各组件的主要作用2、各组件安装顺序 编译安装Apache http服务编译安装MySQL服务编译安装PHP解析环境安装论坛 LAMP概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供静态和动态Web站点服务…...

攻防世界安卓逆向练习
文章目录 一.easy-so1. jadx分析程序逻辑2. ida查看so文件3. 解题脚本: 二.ezjni1. 程序逻辑分析2. 解题脚本: 三.easyjava1. 主函数逻辑2. getIndex函数3. getChar函数4.解题脚本 四.APK逆向1.程序逻辑分析2.解题脚本3.动态调试 Android2.0app3 一.easy-so 1. jadx分析程序逻…...
自然语言处理从入门到应用——自然语言处理的语言模型(Language Model,LM)
分类目录:《自然语言处理从入门到应用》总目录 语言模型(Language Model,LM)(也称统计语言模型)是描述自然语言概率分布的模型,是一个非常基础和重要的自然语言处理任务。利用语言模型ÿ…...

【MySql】InnoDB一棵B+树可以存放多少行数据?
文章目录 背景一、怎么得到InnoDB主键索引B树的高度?二、小结三、最后回顾一道面试题总结参考资料 背景 InnoDB一棵B树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞…...

【综述】视频无监督域自适应(VUDA)的小综述
【综述】视频无监督域自适应(VUDA)的小综述 一篇小综述,大家看个乐子就好,参考文献来自于一篇综述性论文 完整PPT已经上传资源:https://download.csdn.net/download/weixin_46570668/87848901?spm1001.2014.3001.550…...

《深入理解计算机系统(CSAPP)》第9章虚拟内存 - 学习笔记
写在前面的话:此系列文章为笔者学习CSAPP时的个人笔记,分享出来与大家学习交流,目录大体与《深入理解计算机系统》书本一致。因是初次预习时写的笔记,在复习回看时发现部分内容存在一些小问题,因时间紧张来不及再次整理…...

信息论与编码 SCUEC DDDD 期末复习
1.证明熵的可加性 2.假设一帧视频图像可以认为是由3*10的五次方个像素组成(每像素均独立变化),如果每个像素可取128个不同的等概率亮度表示。请计算出每帧图像含多少信息量?若有一口述者在约12000个汉字的字汇中选400个字来口述此…...

windows安装python开发环境
最近因工作需要,要学习一下python,所以先安装一下python的开发环境,比较简单 下载和安装Python 首先,在浏览器中打开Python的官方网站(https://www.python.org/downloads/) 然后,从该网站下载与你的操…...

java idea常用的快捷方式
文章目录 java idea常用的快捷方式快速复制选多行改变代码格式化 快速代码编辑psvmsout5.forarr.for快速死循环快速补全代码当方法还没创建的时候抽取具有一定功能的代码变成方法 java idea常用的快捷方式 快速复制 c t r l d \color{red}{ctrld} ctrld 选多行改变 A l t 鼠…...

lwIP 开发指南
目录 lwIP 初探TCP/IP 协议栈是什么TCP/IP 协议栈架构TCP/IP 协议栈的封包和拆包 lwIP 简介lwIP 源码下载lwIP 文件说明 MAC 内核简介PHY 芯片介绍YT8512C 简介LAN8720A 简介 以太网接入MCU 方案软件TCP/IP 协议栈以太网接入方案硬件TCP/IP 协议栈以太网接入方案 lwIP 无操作系…...

RabbitMQ消息属性详解
content-type属性 如同各种标准化的HTTP规范,content-type传输消息体的MIME类型。例如,如果你的应用程序正在发送JSON序列化的数据值,那么将content-type属性设置为application/json将允许尚待开发的消费者应用程序在收到消息时检查消息类型…...
shader 混合模式
在所有着色器执行完毕,所有纹理都被应用,所有像素准备被呈现到屏幕之后,使用Blend命令来操作这些像素进行混合。 3.2 blend的语法 BlendOff:关闭blend混合(默认值) BlendSrcFactor DstFactor :配置并启动混…...
【大数据工具】Hive 安装
Hive 环境搭建与基本使用 Hive 安装包下载地址:https://dlcdn.apache.org/hive/ 注:安装 Hive 前要先安装好 MySQL 1. MySQL 安装 MySQL 安装包下载地址:https://dev.mysql.com/downloads/mysql/archives/community/MySQL%20::%20Downloa…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...