【SpringBoot_Project_Actual combat】 Summary of Project experience_需要考虑的问题

news2024/12/25 2:01:36

无论是初学者还是有经验的专业人士,在学习一门新的IT技术时,都需要采取一种系统性的学习方法。那么作为一名技术er,你是如何系统的学习it技术的呢。

一、DB Problems

  1. 数据库数据类型与java中数据类型对应问题?
    MySql数据库和java中数据类型的对应关系:
    类型名称

从 JDBC 类型映射到 Java 类型http://t.csdn.cn/AqkMY
source
笔记:MySql数据库和java中数据类型的对应关系
( ఠൠఠ )ノ~source-笔记:MySql数据库和java中数据类型的对应关系

关于Mysql中如何选用这BigDecimal和double

  1. 首先与java不同的是mysql是用来持久化数据的,而java中使用的数据一般更多的是过一下内存;
  2. 数据库都要除了指定数据类型指外还需要指定精度,因此在DB中Double计算时精度的丢失比Java高得多;
    因为Java默认精确到15-16位了;
  3. 更改数据类型的成本,Mysql比Java代码要难得多;考虑到以上与java中不同几点,做点个人使用总结:
  4. 与商业金融相关字段要使用Decimal来表示,如金额,费率等字段;
  5. 参与各类计算如加,减,乘,除,sum,avg等等,也要使用Decimal;
  6. 经纬度,可以使用double来表示,这个可参考Java,只要保证精度范围即可;
  7. 如果确实不确定使用什么double或Decimal哪种类型合适,那最好使用Decimal,毕竟稳定,安全高于一切;

原文链接
贴贴-java.sql.Types,数据库字段类型,java数据类型的对应关系

二、关于“创建时间”&&“更新时间”问题

MySQL数据库之MySQL自动设置字段create_timeupdate_time
reference structure

create 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

编写代码实现;需要编写代码

通常用于表建好了,突然发现还需要给字段自动设置系统时间,此时可使用代码来实现此功能/效果。

  1. 在product实体类中添加新属性 private Timestamp mqttTime;
  2. 获取当前时间存入数据库:
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的父类

  1. 然后把这个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 类型。如果您不确定哪种类型更适合您的需求,请根据您的具体情况进行选择。

三、学习时的具体操作

提示:可介绍你是如何建立基础知识、实际操作、进行整理和总结的

四、如何巩固学习

提示:可阐述你是如何形成更系统和清晰的知识体系并进行回顾的

提醒:以上内容仅做参考,可自行发散。在发布作品前,请把不需要的内容删掉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/593347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Centos Stream 9上Docker的实操教程(一) - 实操准备篇

在Centos Stream 9上Docker的实操教程 - 实操准备篇 认识Docker准备Centos Stream 9安装Docker更新仓库绕不开的HelloWorld结语 认识Docker 什么都要实操了,你还不知道Docker是什么?网上关于Docker的介绍一搜一大把,博主就不必浪费时间去侃侃…

sqlserver行列转换( unpivot 和 pivot)

1,unpivot 是将列转为行显示,很多时候,我们用多个列了显示同一个对象不同维度得数据,如果需要数据关联,肯定需要转为横向显示! 思路就是:有一列显示多列的名称,有一列显示列名对应的…

Redis发布订阅以及应用场景介绍

目录 一、什么是发布和订阅?二、Redis的发布和订阅三、发布和订阅的命令行实现四、发布和订阅命令1、subscribe:订阅一个或者多个频道2、publish:发布消息到指定的频道3、psubscribe:订阅一个或多个符合给定模式的频道4、pubsub&a…

通过facebook主页进行自己产品的推广可行吗?

首先,让我们明确结论:通过Facebook主页进行产品推广是可行的,但并不是必要的。为什么这么说呢? Facebook作为一个社交平台,其核心功能是连接人与人之间的关系,鼓励用户分享和互动。用户在Facebook上的活动主…

(学习日记)2023.04.23

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

实用可靠的安科瑞电动机保护控制器的应用

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要:介绍了一种新型电动机保护器,兼有电流、电压、过载、短路保护功能。它集电流型和电压型电动机保护器优点于一身,对电源欠电压、过电压、断相起闭锁作用,它结构简单…

【测试报告】个人博客系统自动化测试报告

文章目录 项目背景项目功能测试计划功能测试测试用例执行测试的操作步骤 自动化测试设计的模块、自动化运行的结果、问题定位的结果自动化测试优点 项目背景 对于一个程序员来说,定期整理总结并写博客是不可或缺的步骤,不管是对近期新掌握的技术或者是遇…

C# 读取json格式文件

读取json格式文件 安装 Newtonsoft.Json 程序集 1. 选择界面下方的【程序包管理器控制台】页面,输入安装指令 Install-Package Newtonsoft.Json 2. 安装完成后,请确保在代码文件的顶部包含以下 using 指令: using Newtonsoft.Json; 创建读…

GCC如何生成并调用静态库

一,简介 本文主要介绍如何使用gcc编译代码生成静态库,并调用静态库运行的操作步骤。 二,准备工作 使用add.c和main.c生成test可行性文件的流程图: add.c文件的内容: #include "add.h"int add(int a, i…

自学网络安全, 一般人我劝你还是算了吧

前言:自学我劝你还是算了,我为什么要劝你放弃我自己却不放弃呢?因为我不是一般人。。。 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 …

【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

前言 前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入,我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段,需要在每个版本中,对某些新增接口进行性能测试,有时还需要在一天中的不同时段分别进行…

计算如何与实验结合发Science

理论计算与实验结合的研究已经成为TOP期刊中的主流方式。近日,上海交通大学种丽娜副教授一项关于质子交换膜水解槽阳极催化剂的研究成果在Science发表。该工作报道了一种由沸石甲基咪唑酯骨架(Co-ZIF)衍生并通过静电纺丝处理的镧和锰共掺杂的…

Python 修复共享内存问题和锁定共享资源问题

文章目录 使用 multiprocessing.Array() 在 Python 中使用共享内存解决多进程之间共享数据问题的解决方案 使用 multiprocessing.Lock() 锁定 Python 中的共享资源 本篇文章解释了多处理共享内存的不同方面,并演示了如何使用共享内存解决问题。 我们还将学习如何使用…

Axure教程—图片手风琴效果

本文将教大家如何用AXURE制作图片手风琴效果 一、效果介绍 如图: 预览地址:https://6nvnfm.axshare.com 下载地址:https://download.csdn.net/download/weixin_43516258/87847313?spm1001.2014.3001.5501 二、功能介绍 图片自动播放为手风…

MT4交易外汇平台有哪些优势?为何是外汇投资首选?

外汇市场上存在着各种各样的外汇交易商,但是很多的外汇交易商所选择的交易平台都是MT4交易外汇平台。作为全世界范围内使用最为广泛的交易平台,MT4交易外汇平台具有哪些优势,能够让外汇交易商和外汇投资者都选择使用。本文就来具体的聊聊&…

SQL中not in的一个坑

因not in 效率较低,在工作用一只用left join代替,在某一次查询使用了not in发现,结果为空,sql大致如下 select id from table1 where id not in (select id from table2)经过查询发现select id from table2里面的id有null值导致该…

司法大数据解决方案

2018年11月26日,司法部制定了《智慧监狱技术规范SFT0028-2018》并于2019年1月1日正式颁布实施,要求智慧监狱的建设应者眼于监狱工作实际,将物联网、云计算、大数据、人工智能等新一信息技术与监狱各项业务深度融合,形成标准规范科…

论文解读 | 基于改进点对特征的点云6D姿态估计

原创 | 文 BFT机器人 01 摘要 点对特征(PPF)方法已被证明是一种有效的杂波和遮挡下的姿态估计方法。 文章的改进方法主要包括: (1)一种基于奇偶规则求解封闭几何的法向的方法; (2)通过将体素网格划分为等效角度单元的有效降采样方法; (3)基于拟合点的验证步骤。在真实杂波数据集…

如何挖掘360下拉词,怎么删除360下拉负面词

大多数人的手机或者电脑上都安装了360浏览器,360搜索APP等,安装的用户量大,自然使用的用户也就多了,360下拉的优势就展现出来了,展示量大,全国各地均可见;能够引流来的都是相对精准的目标用户&a…

C#简单数据结构类和常用泛型结构类

文章目录 1.简单数据结构类(1)动态数组Arraylist(2)栈Stack(3)队列Queue(4)哈希表Hashtable 2.泛型3.常用泛型数据结构类(1)列表List(2&#xff0…