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

Util和utils

Util

FieldStats

这段代码定义了一个名为`FieldStats`的Java类,位于`com.cqupt.software_1.Util`包中。它使用了`lombok`库的`@Data`和`@AllArgsConstructor`注解,这些注解帮助生成了`getter`、`setter`、`toString`等方法,以及包含所有参数的构造函数。类中有三个字段:
- `missingRate`:表示缺失率。
- `mean`:表示平均值。
- `variance`:表示方差。构造函数接受这三个字段作为参数,并将它们赋值给对应的字段。这个类主要用于存储字段的统计信息,例如在数据分析中计算每个字段的缺失率、平均值和方差等统计数据。
package com.cqupt.software_1.Util;import lombok.AllArgsConstructor;
import lombok.Data;@Data
@AllArgsConstructor
public class FieldStats {private double missingRate;private double mean;private double variance;
}

ImportXlsxToMysql

这段代码是一个Java程序,它用于将Excel文件(.xlsx格式)中的数据导入到MySQL数据库中。让我详细介绍一下:1. `ImportXlsxToMysql` 类包含了 `main` 方法,是程序的入口点。它主要负责读取Excel文件中的数据,并将数据插入到MySQL数据库中。2. 在 `main` 方法中,首先定义了一些变量,如 `xlsxFilePath` 存储了Excel文件的路径,`dbUrl` 存储了数据库的URL,`username` 和 `password` 分别是数据库的用户名和密码,`tableName` 是要插入数据的表名。3. 在 `try-with-resources` 语句中,打开文件输入流 `fileInputStream`,并使用 `WorkbookFactory.create(fileInputStream)` 创建一个 Workbook 对象,用于处理 Excel 文件。然后,通过 `DriverManager.getConnection` 方法建立数据库连接。4. 通过 `workbook.getSheetAt(0)` 获取Excel文件的第一个工作表,并通过 `sheet.getRow(0)` 获取表头行,从中获取列数。5. 构建 SQL 插入语句。通过遍历表头行的每一列,获取列名,并构建插入语句的列部分。然后通过遍历列数,构建插入语句的值部分,同时使用占位符 '?'。6. 执行插入操作。通过准备好的 SQL 插入语句创建 `PreparedStatement` 对象,然后遍历 Excel 文件的每一行,设置参数值,并执行插入操作。7. `getCellValueAsString` 方法用于将单元格的值以字符串的形式返回。它接受一个 `Cell` 对象作为参数,首先检查单元格的类型,然后将其值转换为相应类型的字符串,并返回。8. 最后,在 `catch` 块中捕获可能出现的异常,例如 `IOException` 和 `SQLException`,并打印异常信息。这个程序的功能是将 Excel 文件中的数据导入到 MySQL 数据库中的指定表中,它支持包含不同数据类型的单元格值,并能处理空单元格。
package com.cqupt.software_1.Util;import org.apache.poi.ss.usermodel.*;import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class ImportXlsxToMysql {public static void main(String[] args) {String xlsxFilePath = "C:\\Users\\hp\\Desktop\\example.xlsx";String dbUrl = "jdbc:mysql://10.16.48.219:3306/result_save";String username = "root";String password = "111111";String tableName = "";try (FileInputStream fileInputStream = new FileInputStream(xlsxFilePath);Workbook workbook = WorkbookFactory.create(fileInputStream);Connection connection = DriverManager.getConnection(dbUrl, username, password)) {Sheet sheet = workbook.getSheetAt(0);// 获取表头行Row headerRow = sheet.getRow(0);int columnCount = headerRow.getLastCellNum();// 构建 SQL 插入语句StringBuilder sqlBuilder = new StringBuilder();sqlBuilder.append("INSERT INTO ").append(tableName).append(" (");for (int i = 0; i < columnCount; i++) {String columnName = getCellValueAsString(headerRow.getCell(i));sqlBuilder.append(columnName);if (i < columnCount - 1) {sqlBuilder.append(", ");}}sqlBuilder.append(") VALUES (");for (int i = 0; i < columnCount; i++) {sqlBuilder.append("?");if (i < columnCount - 1) {sqlBuilder.append(", ");}}sqlBuilder.append(")");String insertSql = sqlBuilder.toString();// 准备插入语句try (PreparedStatement statement = connection.prepareStatement(insertSql)) {// 遍历行for (int rowIndex = 1; rowIndex <= sheet.getLastRowNum(); rowIndex++) {Row row = sheet.getRow(rowIndex);// 设置参数值for (int columnIndex = 0; columnIndex < columnCount; columnIndex++) {Cell cell = row.getCell(columnIndex);String cellValue = getCellValueAsString(cell);statement.setString(columnIndex + 1, cellValue);}// 执行插入操作statement.executeUpdate();}}System.out.println("Data imported successfully!");} catch (IOException | SQLException e) {e.printStackTrace();}}private static String getCellValueAsString(Cell cell) {if (cell == null) {return "";}CellType cellType = cell.getCellType();String cellValue;if (cellType == CellType.STRING) {cellValue = cell.getStringCellValue();} else if (cellType == CellType.NUMERIC) {cellValue = String.valueOf(cell.getNumericCellValue());} else if (cellType == CellType.BOOLEAN) {cellValue = String.valueOf(cell.getBooleanCellValue());} else if (cellType == CellType.FORMULA) {cellValue = cell.getCellFormula();} else {cellValue = "";}return cellValue;}
}

SecurityUtil

这段代码定义了一个名为`SecurityUtil`的Java类,它包含了一个静态方法`hashDataSHA256`,用于对输入的字符串数据使用SHA-256算法进行哈希加密。`hashDataSHA256`方法接受一个`String`类型的参数`data`,这是需要被加密的原始数据。方法内部首先尝试获取SHA-256算法的实例,如果获取失败(例如,因为Java环境不支持该算法),则通过`NoSuchAlgorithmException`异常处理。如果算法实例成功获取,方法将原始数据转换为字节数组,并使用`MessageDigest`的`digest`方法对其进行加密。`digest`方法返回一个字节数组,该数组包含了SHA-256算法加密后的结果。接下来,方法将加密后的字节数组转换为十六进制的字符串表示形式。它使用`StringBuilder`类来构建这个十六进制字符串,并通过`String.format`方法将每个字节转换为两个字符的十六进制形式。最后,方法返回生成的十六进制字符串,该字符串代表了原始数据的SHA-256哈希值。如果发生异常,方法将打印堆栈跟踪信息并返回`null`。`SecurityUtil`类可以被其他Java程序调用,以便对数据进行SHA-256加密。这通常用于密码加密、数据完整性校验等安全相关的应用场景。
package com.cqupt.software_1.Util;import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;public class SecurityUtil {/****  SHA-256  加密对密码* @param data* @return*/public static String hashDataSHA256(String data) {try {MessageDigest md = MessageDigest.getInstance("SHA-256");byte[] hashInBytes = md.digest(data.getBytes(StandardCharsets.UTF_8));// Convert the byte array to a hexadecimal stringStringBuilder sb = new StringBuilder();for (byte b : hashInBytes) {sb.append(String.format("%02x", b));}return sb.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();return null;}}
}

utils

HTTPUtils

这段代码定义了一个名为 `HTTPUtils` 的 Java 类,它包含了一个静态方法 `postRequest`,用于向指定的 HTTP 服务器发送 POST 请求,并返回服务器响应的 JSON 数据。
`postRequest` 方法接受两个参数,第一个参数是要发送的数据对象 `paramData`,第二个参数是请求路径 `path`。
方法首先构建了一个 URI 对象,表示请求的完整路径,这个路径由 `rootPath` 和传入的 `path` 拼接而成。
然后,创建了一个 `HttpPost` 对象,用于执行 POST 请求,同时创建了一个 `HttpClient` 对象来执行 HTTP 请求。
接下来,使用 `ObjectMapper` 对象将传入的 `paramData` 对象转换为 JSON 格式的字符串 `jsonData`。在转换过程中,允许非数值字符的存在,这一特性通过 `objectMapper.configure(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS, true)` 实现。
接着,将 JSON 数据设置到请求的实体中,同时设置请求体的编码为 UTF-8。
设置请求头部为 `application/json; charset=UTF-8`,指明请求体的类型和编码格式。
执行 HTTP 请求,得到服务器的响应对象 `response`,然后将响应实体中的数据转换为字符串 `responseData`。
最后,使用 `ObjectMapper` 将响应数据字符串转换为 JSON 对象 `JsonNode`,并返回该对象。
这个 `HTTPUtils` 类提供了一个方便的工具方法,可以用于在 Java 程序中向指定的 HTTP 服务器发送 POST 请求,并获取服务器返回的 JSON 数据。
package com.cqupt.software_1.utils;import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;public class HTTPUtils {public static final String rootPath = "http://localhost:5000/";public static JsonNode postRequest(Object paramData, String path) throws URISyntaxException, IOException {URI uri = new URI(rootPath+path);// 创建http POSTHttpPost httpPost = new HttpPost(uri);HttpClient httpClient = HttpClients.createDefault();ObjectMapper objectMapper = new ObjectMapper();objectMapper.configure(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS, true);String jsonData = objectMapper.writeValueAsString(paramData);//        httpPost.setHeader(HttpHeaders.CONTENT_TYPE,"application/json");
//        httpPost.setEntity(new StringEntity(jsonData)); // 设置请求体// 设置请求体编码为 UTF-8StringEntity entity = new StringEntity(jsonData, StandardCharsets.UTF_8);httpPost.setEntity(entity);httpPost.setHeader(HttpHeaders.CONTENT_TYPE, "application/json; charset=UTF-8"); // 设置请求头部// 执行请求HttpResponse response = httpClient.execute(httpPost);String responseData = EntityUtils.toString(response.getEntity());JsonNode jsonNode = objectMapper.readValue(responseData, JsonNode.class);return jsonNode;}
}

相关文章:

Util和utils

Util FieldStats 这段代码定义了一个名为FieldStats的Java类&#xff0c;位于com.cqupt.software_1.Util包中。它使用了lombok库的Data和AllArgsConstructor注解&#xff0c;这些注解帮助生成了getter、setter、toString等方法&#xff0c;以及包含所有参数的构造函数。类中有…...

拷贝构造、移动构造、拷贝赋值、移动赋值

最近在学习C的拷贝构造函数时发现一个问题&#xff1a;在函数中返回局部的类对象时&#xff0c;并没有调用拷贝构造函数。针对这个问题&#xff0c;查阅了一些资料&#xff0c;这里记录整理一下。 调用拷贝构造函数的三种情况&#xff1a; ① 用一个类去初始化另一个对象时&a…...

Python3 笔记:math模块

要使用 math 函数必须先导入math模块 语法&#xff1a;import math Python math 模块提供了许多对浮点数的数学运算函数。 math 模块下的函数&#xff0c;返回值均为浮点数&#xff0c;除非另有明确说明。 如果需要计算复数&#xff0c;需使用 cmath 模块中的同名函数。 m…...

python -【四】函数

函数 一、函数的基础 函数&#xff1a;是组织好的&#xff0c;可以重复使用的&#xff0c;用来实现特定功能的代码段 语法 def 函数名(入参): return 出参 # 定义函数 def out_hello():print(hello ~~~)# 调用/使用/执行函数 out_hello()练习题 自定义一个函数&#xff0c…...

力扣 5. 最长回文子串 python AC

动态规划 class Solution:def longestPalindrome(self, s):size len(s)maxl 1start 0dp [[False] * size for _ in range(size)]for i in range(size):dp[i][i] Truefor L in range(2, size 1):for i in range(size):j L i - 1if j > size:breakif s[i] s[j]:if L…...

【微机原理及接口技术】可编程计数器/定时器8253

【微机原理及接口技术】可编程计数器/定时器8253 文章目录 【微机原理及接口技术】可编程计数器/定时器8253前言一、8253的内部结构和引脚二、8253的工作方式三、8253的编程总结 前言 本篇文章就8253芯片展开&#xff0c;详细介绍8253的内部结构和引脚&#xff0c;8253的工作方…...

23种设计模式之一— — — —装饰模式详细介绍与讲解

装饰模式详细讲解 一、定义二、装饰模式结构核心思想模式角色模式的UML类图应用场景模式优点模式缺点 实例演示图示代码演示运行结果 一、定义 装饰模式&#xff08;别名&#xff1a;包装器&#xff09; 装饰模式&#xff08;Decorator Pattern&#xff09;是结构型的设计模式…...

2024年2月28日 星期三

2024年2月28日 星期三 农历正月十九 1. 住建部&#xff1a;各城市要做好今明两年住房发展计划&#xff0c;防止市场大起大落。 2. 政协委员赵长龙建议&#xff1a;增加元旦、端午、中秋高速免费&#xff0c;周六日半价。 3. 人民法院案例库开始对社会开放&#xff0c;与中国…...

Java中的super关键字详解

在Java编程中&#xff0c;super关键字是一个非常重要的概念&#xff0c;尤其是在继承和多态的场景中。理解super关键字的使用方法和其背后的机制&#xff0c;对于掌握面向对象编程&#xff08;OOP&#xff09;的基本概念至关重要。本篇博客将详细讲解super关键字的各种用法及其…...

消消乐游戏开发,三消游戏,消除小游戏

消消乐是一款非常受欢迎的休闲消除类游戏&#xff0c;通常也被称为“三消游戏”。这类游戏的主要目标是通过交换和匹配三个或更多相同的物品来清除它们&#xff0c;从而得分并通过关卡。以下是一些消消乐游戏的基本特点和玩法&#xff1a; 基本玩法 交换和匹配&#xff1a;玩…...

三十三、openlayers官网示例Drawing Features Style——在地图上绘制图形,并修改绘制过程中的颜色

这篇讲的是使用Draw绘制图形时根据绘制形状设置不同颜色。 根据下拉框中的值在styles对象中取对应的颜色对象&#xff0c;new Draw的时候将其设置为style参数。 const styles {Point: {"circle-radius": 5,"circle-fill-color": "red",},LineS…...

Vue——事件修饰符

文章目录 前言阻止默认事件 prevent阻止事件冒泡 stop 前言 在官方文档中对于事件修饰符有一个很好的说明&#xff0c;本篇文章主要记录验证测试的案例。 官方文档 事件修饰符 阻止默认事件 prevent 在js原生的语言中&#xff0c;可以根据标签本身的事件对象进行阻止默认事件…...

Go语言GoFly框架快速新增接口/上手写代码

拿到一个新框架大家可能无从下手&#xff0c;因为你对框架设计思路、结构不了解&#xff0c;从而产生恐惧&#xff0c;所以我们框架是通过简单可视化界面安装&#xff0c;安装后即可看到效果&#xff0c;然后点击先点点看各个功能&#xff0c;看现有的功能是怎么写的&#xff0…...

【Vue】v-else 和 v-else-if

作用&#xff1a;辅助v-if进行判断渲染 语法&#xff1a; v-else v-else-if"表达式"PS&#xff1a;需要紧接着v-if使用 示例代码&#xff1a; <body><div id"app"><p v-if"gender 1">性别&#xff1a;♂ 男</p><…...

一致性hash算法原理图和负载均衡原理-urlhash与least_conn案例

一. 一致性hash算法原理图 4台服务器计算hash值图解 减少一台服务3台服务器计算hash值图解 增加一台服务器5台服务器计算hash值图解 二. 负载均衡原理-urlhash与least_conn 2.1.urlhash案例 # urlhash upstream tomcats {hash $requ...

MySQL建库

删除数据库 新建数据库 右键-新建数据库 字符集选中utf8(支持中文) 修改字符集 右键--数据库的属性 将字符集支持的数量变少可以修改...

系统资源监控器工具glances的使用详解

目录 1、glances工具介绍 2、安装方式 3、glances的工具界面说明 4、常用的参数选项 5、常用快捷键说明 1、glances工具介绍 glances可以分析系统的 CPU使用率、内存使用率、内核统计信息和运行队列信息磁盘I/O速度、传输和读/写比率、磁盘适配器网络I/O速度、传输和读/写…...

JDBC使用QreryRunner简化SQL查询注意事项

QreryRunner是Dbutils的核心类之一&#xff0c;它显著的简化了SQL查询&#xff0c;并与ResultSetHandler协同工作将使编码量大为减少。 注意事项 1. 使用QreryRunner必须保证实体类的变量名&#xff0c;和sql语句中要查找的字段名必须相同&#xff0c;否则查询 不到数据,会出…...

前缀和(下)

目录 热身&#xff1a; 寻找数组的中心下标 题解&#xff1a; 代码&#xff1a; 进阶&#xff1a; 除自身之外数组的乘积 题解&#xff1a; 代码&#xff1a; 和为K的子数组 题解&#xff1a; 代码&#xff1a; 和可被 K 整除的子数组 题解&#xff1a; 同余定理…...

【排序算法】希尔排序

前言&#xff1a;学习希尔排序前最好先掌握插入排序&#xff0c;在进行&#xff1b;不会的可以点击——>【排序算法】插入排序-CSDN博客 一、希尔排序&#xff1a; 希尔排序&#xff0c;也称为缩小增量排序&#xff0c;是一种基于插入排序的快速改进算法。由Donald Shell于1…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)

目录 &#x1f50d; 若用递归计算每一项&#xff0c;会发生什么&#xff1f; Horners Rule&#xff08;霍纳法则&#xff09; 第一步&#xff1a;我们从最原始的泰勒公式出发 第二步&#xff1a;从形式上重新观察展开式 &#x1f31f; 第三步&#xff1a;引出霍纳法则&…...

linux设备重启后时间与网络时间不同步怎么解决?

linux设备重启后时间与网络时间不同步怎么解决&#xff1f; 设备只要一重启&#xff0c;时间又错了/偏了&#xff0c;明明刚刚对时还是对的&#xff01; 这在物联网、嵌入式开发环境特别常见&#xff0c;尤其是开发板、树莓派、rk3588 这类设备。 解决方法&#xff1a; 加硬件…...

多模态大语言模型arxiv论文略读(110)

CoVLA: Comprehensive Vision-Language-Action Dataset for Autonomous Driving ➡️ 论文标题&#xff1a;CoVLA: Comprehensive Vision-Language-Action Dataset for Autonomous Driving ➡️ 论文作者&#xff1a;Hidehisa Arai, Keita Miwa, Kento Sasaki, Yu Yamaguchi, …...

【字节拥抱开源】字节团队开源视频模型 ContentV: 有限算力下的视频生成模型高效训练

本项目提出了ContentV框架&#xff0c;通过三项关键创新高效加速基于DiT的视频生成模型训练&#xff1a; 极简架构设计&#xff0c;最大化复用预训练图像生成模型进行视频合成系统化的多阶段训练策略&#xff0c;利用流匹配技术提升效率经济高效的人类反馈强化学习框架&#x…...