主函数:

参数处理、信号处理、打开日志、解析参数到结构体、添加进程心跳、处理业务函数

业务处理函数:

将规则xml加载到结构体(xml文件名、对应表名、更新标志、预先执行语句)、打开源文件夹并匹配10000个xml文件、判断数据库是否开启、连接数据库、while中:读取一个源文件夹中的xml数据文件、处理xml数据文件函数、更新进程心跳、(处理xml数据文件成功了)将xml数据文件在服务端进行备份、(处理xml数据文件失败了、原因是入库参数、表不存在、预处理sql失败)备份到指定的err目录、(处理xml数据文件失败了、原因是数据库错误)返回、(处理xml数据文件失败了、原因是打开xml文件失败)返回、while外:如果目录为空(文件处理完了)休眠、更新进程心跳

处理xml数据文件函数(目录文件名):

        记时、清空三个计数、根据参数:目录文件名对照规则结构体找到对应表名、获取数据库字典中的字段容器、获取数据库字典中的主键容器、查询数据库中表的大小(验证数据库中是否有表)、拼接需要插入的语句、绑定变量到sql语句、执行预处理sql语句、打开xml文件失败则回滚、while内:获取打开的xml文件的一行数据、xml文件计数++、解析该行的字段的值、执行插入语句、判断失败原因是否违反唯一性约束、是否需要更新、执行更新语句、成功的话更新记录数++、插入成功的话插入计数器++、提交事务

将规则xml文件加载到容器:

        打开参数结构体的目录、循环中:读取一行、清空规则结构体、获取规则xml的参数名对应的值,放入规则结构体变量中、将规则结构体变量压入容器中

找到对应表名函数:

        遍历规则容器中规则结构体,匹配结构体的文件名和当前xml数据文件的文件名、将匹配的结构体设置为当前规则结构体

获取字段容器函数:

       连接数据库、表名的字典查询语句、变量绑定输入表名、三个变量绑定输出的字段名、字段类型、字段长度、连接异常就断开、获取结果集、判断结果集输出到结构体变量的类型,并归一化(varchar都用char代替)、日期设置类型长度为14、数字设置类型为number、其他类型跳过、number类型、长度设置为22、拼接所有字段用逗号、放入字段容器中、删除最后一个逗号

获取主键容器函数:

        连接数据库、准备语句、输入绑定表名,输出绑定字段名、输出绑定主键标记、执行查询主键字典语句、while中:获取结果集、从多表的多个主键字段比对当前表所有字段中同名字段、设置对应的标记

拼接插入语句函数:

        设置两个字符串和一个占位符变量、for(获取的容器内所有字段):第一个字符串除了upttime用逗号拼接各个字段名;匹配字段和keyid用序列化表述拼接字段值、比较date和字段用to_date表述拼接字段值、其余用占位符表述拼接字段值、占位符++,删除字符串1和字符串2的最后一个逗号、构建由字段名、字符串1、字符串2构成的语句;若需要更新则退出函数、否则设置拼接语句1(update %s)、遍历全部字段容器:拼接主键名、keyid以外的字段名、upttime字段名直接赋值为sysdate(不需要占位符)、其他字段判别是否为时间,时间用sformat和to_date(:占位符)来拼接,非时间用占位符、占位符++;删除最后一个逗号、for遍历全部字段的容器:如果是主键进一步判断是否为时间类型,是就用特殊格式占位,否则退出,其余非主键的跳过、占位符++;

绑定sql语句函数:

        为将要绑定的变量准备空间、连接数据库、准备语句(拼接好的字符串)、for(所有字段):不执行upttime字段和keyid字段、绑定参数、序列号++

执行预处理语句函数:

        若获取预处理sql语句长度为0说明不需要预处理sql,直接返回。连接数据库、连接命令行、准备预执行语句、执行语句

解析字段值函数:

        设置临时变量、for(所有字段):从buffer中比对字段名并将对应字段值存入临时变量、判断当前字段类型、从临时变量中挑选数字(字段值)、非时间类型是数字类型也是从临时变量中挑选数字、将字段对应的值保存到字段值容器中

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongoDB学习(docker)

docker 命令创建mongoDBdocker pull mongo docker run -d --name my-mongo \-e MONGO_INITDB_ROOT_USERNAMEroot \-e MONGO_INITDB_ROOT_PASSWORD123456 \-v /my/data/mongo:/data/db \-p 27017:27017 \mongodocker run -d --name my-mongo -e MONGO_INITDB_ROOT_USERNAMEroot…

软件测试(四):等价类和判定表

1.等价类划分表例:qq号等价类测试用例:无论有效无效,对应的用例都只举一个数据例子(例子在其对应的用例情况区间任选一个即可)自测案例写完测试用例后执行测试用例验证(借助工具DDSP)实际结果与…

week5-[二维数组]翻转

week5-[二维数组]翻转 题目描述 给定一个 nnn\times nnn 的正方形二维数组,将它旋转 180180180 度后输出。 输入格式 输入共 n1n 1n1 行。 第 111 行 111 个正整数 nnn。 接下来 nnn 行,每行 nnn 个正整数 aija_{ij}aij​ 表示这个二维数组。 输出格式 …

微调大模型并部署服务提供外部调用

微调大模型并部署服务提供外部调用1.背景知识介绍说明LoRA 微调算法LoRA原理:微调常见框架2. 环境搭建下载并使用docker compose部署 LLaMA-Factory3. 微调微调结束之后导出模型4. 本地运行模型5. 服务http调用验证应用到的技术 微调框架( LLama-Factory…

命令行操作:逻辑运算符、重定向与管道

命令行操作:逻辑运算符、重定向与管道前言一、逻辑运算符1.1. 逻辑运算符 && (AND)1.2. 逻辑运算符 || (OR)1.3. 标准文件描述符 (FD)二、重定向2.1 重定向: > 与 >>2.2 重定向错误输出: 2>/ 与 2>>2.3 POSIX 推荐(经常使用)三、管道 (顺…

IDA Pro 逆向安卓 SO 库实战指南:从静态分析到动态调试

IDA Pro 逆向安卓 SO 库是一个系统性的工程。下面我将为你提供一个从环境准备、基础静态分析到高级动态调试的完整实战指南。一、 准备工作与环境搭建 所需工具IDA Pro: 主力逆向工具,建议使用 7.7 或更高版本,对 ARM/ARM64 架构支持更好。目标 APK:…

Python爬虫(47)Python异步爬虫与K8S弹性伸缩:构建百万级并发数据采集引擎

目录一、背景与行业痛点二、核心技术架构解析2.1 异步爬虫引擎设计2.2 K8S弹性伸缩架构三、生产环境实践数据3.1 性能基准测试3.2 成本优化效果四、高级优化技巧4.1 协程级熔断降级4.2 预测式扩容五、总结🌈Python爬虫相关文章(推荐)一、背景…

处理器的双发射是什么?

处理器的双发射是什么? 这是一个处理器微架构层面的概念,对于理解现代高性能CPU(包括一些Cortex-M7/M55/M85等高端MCU内核)如何提升性能至关重要。 核心摘要 双发射 是一种处理器设计技术,允许CPU的译码器在一个时钟周期内,同时解码并派发两条指令到不同的执行单元中去…

麒麟操作系统挂载NAS服务器

前言:因信创整改,需将原服务器的服务全部迁移到信创服务器,在部署完应用后,发现外挂了NAS服务(可用df -h查看挂载文件),于是在信创服务器上需要挂载NAS服务器。在Linux上挂载NAS服务器可以通过多…

qt配置ros2环境,简单版本

因为不同的系统环境会有差异,先把我的环境介绍如下: 系统:Ubuntu22.04 ROS版本:ros2 humble Qt版本:qt-5.14.2 要配置Qt中的ros环境,需要在Qt的系统环境中添加2个变量,一个是编译环境变量、一个…

【基于C# + HALCON的工业视觉系统开发实战】三十六、PCB焊点缺陷检测:0漏检的局部变形匹配技术

摘要:针对PCB焊点检测中虚焊、锡珠、偏移三大核心缺陷,本文提出基于局部变形匹配与黄金模板的工业级解决方案。系统采用"同轴光源+四向可调支架"的硬件布局消除器件阴影,结合HALCON 24.11的局部变形匹配算法适应PCB热膨胀形变。通过多尺度模板库自学习机制实现8秒…

诺基亚无人机网络(NDN-Nokia Drone Networks):面向工业运营的全自动无人机解决方案

诺基亚无人机网络(NDN-Nokia Drone Networks):面向工业运营的全自动无人机解决方案诺基亚无人机网络 (NDN) 是一款先进的全自动无人机一体化解决方案,旨在提升和数字化各种工业和公共安全用例。这款多功能 BVLOS 解决方案基于先进的蜂窝连接,…

OpenTelemetry 在 Spring Boot 项目中的3种集成方式

目录 1. 自动埋点(Java Agent) 2. 注解驱动(WithSpan) 3. 手动埋点(SDK 编程) 配置关键点 方案选择建议 OpenTelemetry 在 Spring Boot 项目中的应用主要有以下三种方式,按实现复杂度由低到…

nvue文件text标签 不同样式的文本在同一段落显示

参考链接&#xff1a;nvue中处理text为块级元素的替代解决方法_nvue 块级元素-CSDN博客 实现效果&#xff1a; nvue的text是块级元素&#xff0c;用上层加粗的绝对定位覆盖底层的文本实现 <view class"cus-text-area"><!-- nvue的text是块级元素&#xff0…

STM32的ADC寄存器操作

ADC硬件电路ADC的硬件电路主要由输入电路&#xff0c;触发信号电路&#xff0c;数据寄存器电路&#xff0c;中断电路还有数据总线这及部分构成。输入信号通道ADC的通道输入到转换器&#xff0c;每个ADC有多达18个通道&#xff0c;可测量16个外部和2个内部信号源&#xff0c;温度…

Java 实现HTML转Word:从HTML文件与字符串到可编辑Word文档

在实际开发中&#xff0c;将HTML页面或内容转换为Word文档是一项常见需求。无论是将网页报表导出为正式文档&#xff0c;还是将合同、发票等页面内容生成可编辑的Word文件&#xff0c;这种转换都能显著提升文档的复用性和归档价值。然而&#xff0c;HTML与Word在结构和渲染机制…

华为L420国产笔记本(统信UOS桌面专业版1070)安装openEuler2403虚拟机

本文探讨在华为L420国产笔记本&#xff08;操作系统为统信UOS桌面专业版1070&#xff09;中安装openEuler2403的arm版虚拟机。 一、测试环境 1、硬件设备 华为L420国产笔记本&#xff0c;CPU为华为麒麟9006C&#xff0c;内存16G 2、操作系统 统信UOS桌面专业版1070 二、安…

【STM32】将 FreeRTOS移植到STM32F103RCT6 详细流程

这篇文章是将 FreeRTOS移植到STM32F103RCT6 详细流程。创建用于移植的根文件夹&#xff0c;如 FreeRTOS-F103。也可以命名为别的名称。进入 FreeRTOS-F103 文件夹&#xff0c;在其内创建以下几个子文件夹&#xff1a;apps&#xff0c;doc&#xff0c;drivers&#xff0c;FreeRT…

京东招java开发

java开发&#xff08;岗位信息经过jobleap.cn授权&#xff0c;可在CSDN发布&#xff09;京东 四川职位描述1、负责企业金融资金、支付基础支撑相关系统建设&#xff1b; 2、负责重点项目、日常需求的承接&#xff0c;按期保质保量交付&#xff1b; 3、负责系统的日常维护及技术…

文本处理与模型对比:BERT, Prompt, Regex, TF-IDF

1. BERT (Bidirectional Encoder Representations from Transformers) BERT是一种基于Transformer架构的深度双向预训练语言模型。它通过在海量文本上进行预训练&#xff08;如掩码语言模型任务&#xff09;&#xff0c;学习到丰富的语言表征&#xff0c;并可以通过微调&#x…