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

【Python 教程】如何将 JSON 数据转换为 Excel 工作表

pagehelper整合引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码GetMapping(/list/{pageNo})public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数据List allVip vipService.findAllVip();// 将数据封装到pageinfo对象中PageInfo pageInfo new PageInfo(allVip);return pageInfo;}web层响应结果的封装对于前后端分离的系统来说后端会返回json数据一般会封装一个R对象来解决统一响应格式问题。package com.ali.springboot3ssm.result;import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructor;DataNoArgsConstructorAllArgsConstructorBuilder // 建造模式public class R {// 响应状态码private int code;// 消息描述成功或失败private String msg;// 响应对象任意类型对象private T data;public static R OK(T data) {return R.builder().code(200).msg(成功).data(data).build();}// 成功的方法public static R OK() {return R.builder().code(200).msg(成功).build();}// 失败的方法public static R FAIL(int code,String msg) {return R.builder().code(code).msg(msg).build();}public static R FAIL() {return R.builder().code(400).msg(失败).build();}}controller中使用GetMapping(/list/{pageNo})public R PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数,设置后会自动为查询语句加limitPageHelper.startPage(pageNo, 10);// 查询数据List allVip vipService.findAllVip();// 将数据封装到pageinfo对象中PageInfo pageInfo new PageInfo(allVip);return R.OK(pageInfo);}改进R对象添加一个枚举类型package com.ali.springboot3ssm.enums;import lombok.AllArgsConstructor;import lombok.Getter;import lombok.NoArgsConstructor;import lombok.Setter;NoArgsConstructorAllArgsConstructorpublic enum CodeEnum {// 枚举的大括号一开始的位置必须有枚举值// 枚举值下面如果没有代码枚举值列表最后的“”可以省略// 枚举值下面如果有代码枚举值列表最后的“” 不可以省略OK(200, OK),FAIL(400, 失败),BAD_REQUEST(400, 失败),NOT_FOUND(400, 失败),INTERNAL_ERROR(400, 失败),MODIFICATION_ERROR(400, 失败),DELETION_ERROR(400, 失败),CREATE_ERROR(400, 失败);GetterSetterprivate int code;GetterSetterprivate String msg;}重写R类DataNoArgsConstructorAllArgsConstructorBuilder // 建造模式public class R {// 响应状态码private int code;// 消息描述成功或失败private String msg;// 响应对象任意类型对象private T data;public static R OK(T data) {return R.builder().code(CodeEnum.OK.getCode()).msg(CodeEnum.OK.getMsg()).data(data).build();}// 成功的方法public static R OK() {return R.builder().code(CodeEnum.OK.getCode()).msg(CodeEnum.OK.getMsg()).build();}// 失败的方法public static R FAIL(CodeEnum codeEnum) {return R.builder().code(codeEnum.getCode()).msg(codeEnum.getMsg()).build();}public static R FAIL() {return R.builder().code(CodeEnum.FAIL.getCode()).msg(CodeEnum.FAIL.getMsg()).build();}}事务管理spring boot自动配置了事务管理器。只需要使用Transactional注解标注需要事务控制的方法即可。就这么简单。怎么打war包修改pom文件warorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-tomcatorg.springframework.bootspring-boot-starter-tomcatprovided启动类继承SpringBootServletInitializer类并重写configure方法MapperScan(basePackages com.ali.springboot3ssm.repository)SpringBootApplicationpublic class Springboot3SsmApplication extends SpringBootServletInitializer {Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(Springboot3SsmApplication.class);}public static void main(String[] args) {SpringApplication.run(Springboot3SsmApplication.class, args);}}日志处理抽象的日志框架什么时抽象的日志框架编译阶段可以使用抽象的日志框架能正常编译。但运行阶段必须提供具体的日志框架目的是具体的日志框架可灵活切换。抽象框架有SLF4J 、 Commons Logging。这2个都可以绑定具体的日志框架如Log4j、Log4j2、Logback、JUL具体的日志框架Log4j已过时、Log4j2推荐、Logback推荐、JULJava util Logging功能有限适合小型应用spring boot默认集成log back日志级别日志级别由低到高trace级别最低。记录最详细信息通常在调试时使用debug记录程序运行时的详细信息比如变量的值进入或退出某个方法等主要用于开发时调试info记录一般信息如系统启动、服务初始化完成等表示程序运行正常。warn警告信息error错误信息生成环境中 通常把日志级别设为info或更高级别开发或测试环境中设为debug或tracespring boot默认日志级别是infoSlf4j // 这是lombok的一个注解作用是为我们维护一个日志对象logSpringBootApplicationpublic class Springboot3SsmApplication {public static void main(String[] args) {SpringApplication.run(Springboot3SsmApplication.class, args);// 直接使用loglog.info(日志信息);}}调整日志级别# 调整日志级别logging.level.rootdebug日志的粗细粒度# 调整根日志级别全局的整个项目都是这个级别logging.level.rootdebug# 为特定包设置日志级别logging.level.com.ali.springboot3ssm.controllerdebug# 为特定类设置日志级别logging.level.com.ali.springboot3ssm.service.UserServicetrace# 在控制台中打印sql (这个包是Mapper类所在的包)logging.level.com.ali.springboot3ssm.repositorydebug日志输出到文件有2种方式这2种方式不能共存如果同时存在只有logging.file.name生效# 将日志文件输出到当前项目根目录下的log目录中。文件名默认spring.log 并且文件名不可修改# 路径可随便改。可以是硬盘上的任意有权限路径logging.file.path./log/# 日志文件输出到当前项目根目录下my.log文件。路径不可修改logging.file.namemy.log滚动日志防止日志无线增长将日志文件分割成多个文件避免单个文件过大难以处理# 此策略仅适合logback# 日志文件达到多大时进行归档,打成一个压缩包logging.logback.rollingpolicy.max-file-size10MB# 归档日志文件总共达到多大时删除logging.logback.rollingpolicy.total-size-cap50GB# 归档日志文件最多保留几天logging.logback.rollingpolicy.max-history60#启动项目时是否清理归档日志文件logging.logback.rollingpolicy.clean-history-on-startfalse# 归档日志文件名格式logging.logback.rollingpolicy.file-name-pattern${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz日志框架切换先排除log back 再引入新依赖org.springframework.bootspring-boot-starter-loggingorg.springframework.bootspring-boot-starter-log4j2幼崩妓居

相关文章:

【Python 教程】如何将 JSON 数据转换为 Excel 工作表

pagehelper整合 引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码 GetMapping("/list/{pageNo}") public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数…...

python中的枚举类

一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。 针对这种特殊的类,Python 3.4 中新…...

Copilot 命令行使用方式介绍(npm)

1. 什么是 Apache SeaTunnel? Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题,如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&#…...

AtlasOS终极指南:专业解决Windows安装错误2502/2503的完整方案

AtlasOS终极指南:专业解决Windows安装错误2502/2503的完整方案 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trendi…...

如何高效获取六大网盘直链下载地址:开源工具的实用指南

如何高效获取六大网盘直链下载地址:开源工具的实用指南 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 在当今数字时代,网盘已成为我们日常工作和学习中不可或缺的工具…...

字节MidScene 手机自动化

1 框架介绍 Midscene 是一个可通过自然语言描述目标和步骤,自动规划并操作用户界面、执行自动化的框架。 框架地址:https://midscenejs.com/zh/支持端:Android、iOS、鸿蒙、桌面、浏览器核心特性 自然语言控制跨平台自动化同时支持智能执行…...

ESXI系统安装全攻略:从U盘启动到网络配置

1. ESXI系统安装前的准备工作 第一次接触ESXI系统的朋友可能会觉得有点懵,其实它就是一个专门用于虚拟化的操作系统。简单来说,它能让一台物理服务器变成多台虚拟服务器,特别适合用来搭建测试环境或者部署云服务。我自己在数据中心工作时&…...

遥感图像小目标检测实战:手把手教你用FFCA-YOLO在AI-TOD数据集上复现论文结果

遥感图像小目标检测实战:手把手教你用FFCA-YOLO在AI-TOD数据集上复现论文结果 当你在处理遥感图像时,是否经常遇到那些小到几乎看不清的目标?这些目标可能只有十几个像素大小,却承载着重要的信息。FFCA-YOLO作为TGRS 2024的最新研…...

Materialize:智能PBR材质转化引擎赋能3D创作流程重构

Materialize:智能PBR材质转化引擎赋能3D创作流程重构 【免费下载链接】Materialize Materialize is a program for converting images to materials for use in video games and whatnot 项目地址: https://gitcode.com/gh_mirrors/mate/Materialize 在3D内容…...

Go语言中的工具链:从go build到go generate

Go语言中的工具链:从go build到go generate 前言 作为一个在小厂挣扎的Go后端老兵,我对工具链的理解就一句话:能自动化的绝不手动。 想当年在大厂时,工具链那叫一个完善,从代码编译到部署上线,全程自动化。…...

Java毕业设计基于springboot+vue的校内兼职信息管理系统

前言 Spring Boot 校内兼职信息管理系统是以 Spring Boot 框架为核心搭建的,专门用于高效管理校园内各类 兼职信息的平台。随着校园生活的多元化发展,学生对兼职机会的需求日益增长,传统的兼职信息发布与管理方式杂乱无章,存在信息…...

Catime终极指南:3个技巧让你成为Windows番茄时钟大师

Catime终极指南:3个技巧让你成为Windows番茄时钟大师 【免费下载链接】Catime A very useful timer (Pomodoro Clock).[一款非常好用的计时器(番茄时钟)] 项目地址: https://gitcode.com/gh_mirrors/ca/Catime Windows番茄时钟、桌面倒计时工具和时间管理软件…...

Go语言中的跨平台开发:从Windows到Linux

Go语言中的跨平台开发:从Windows到Linux 前言 作为一个在小厂挣扎的Go后端老兵,我对跨平台开发的理解就一句话:能跨平台的绝不局限。 想当年在大厂时,开发环境和生产环境都是Linux,跨平台开发的需求不大。现在到了小厂…...

Learn Claude Code Agent 开发 | 2、插拔式工具系统:扩展功能不修改核心循环

Learn Claude Code Agent 开发 | 2、插拔式工具系统:扩展功能不修改核心循环 整体概述 多工具分发核心实现是基础智能体循环的直接扩展,核心思想就是: “加一个工具, 只加一个 handler” – 循环不用动, 新工具注册进 dispatch map 就行。 …...

DHA之后,大脑营养进入GPC时代?

近年来,青少年脑健康逐渐成为家庭关注的重要议题。随着学习节奏加快、信息环境复杂,家长对于孩子专注力、记忆力以及学习效率的关注度不断提升。行业报告显示,国内DHA藻油相关产品市场规模持续扩大,预计2026年市场规模将达到超320…...

关于我使用MinMix创建了一个Tailwindcss学习网站

一、语言特性:Java 26 与模式匹配进化 1.1 Java 26 语言级别支持 IDEA 2026.1 EAP 最引人注目的变化之一,就是新增 Java 26 语言级别支持。这意味着开发者可以提前体验和测试即将在 JDK 26 中正式发布的语言特性。 其中最重要的变化是对 JEP 530 的全…...

gitru:一个由 Rust 打造的零依赖 Git 提交信息校验工具

gitru 基于 Git 的 commit-msg Hook 实现,用于在提交阶段自动校验提交信息格式。 在团队协作开发中,规范的 Git 提交信息是代码追溯、版本管理、自动生成变更日志的基础。 但现实往往是: 人工约束容易遗漏手动配置 Hook 繁琐提交信息格式随心…...

政务短信钓鱼攻击机理与防控研究 —— 以美国宾州 PennDOT 诈骗事件为例

摘要 2026 年 3 月 27 日,宾夕法尼亚州官方发布安全预警,提示公众警惕冒充 PennDOT(宾州交通局)的短信钓鱼诈骗。此类攻击以车辆管理、罚单缴费、证件状态异常为诱饵,通过仿冒政务身份诱导用户点击恶意链接&#xff0c…...

避坑指南:使用OverPy API获取OSM路网数据时常见的5个错误及解决方法

OverPy API实战避坑指南:5个高频错误与专业解决方案 当开发者第一次接触OverPy API与OpenStreetMap数据时,往往会陷入一些看似简单却影响深远的陷阱。我曾在一个城市交通分析项目中连续三天被边界框坐标顺序问题困扰,直到发现查询结果中道路片…...

3000份绝密文件外泄!Anthropic“核弹级”AI Mythos一夜封神,AGI防盗门被敲碎

Anthropic“防盗门”被敲了三下,声音来自自家后院。 一次配置失误,近3000份内部文档裸奔,把尚未出生的Mythos(对外昵称Capybara)推到了聚光灯下。 它有多强?一句话:在软件编程、学术推理、网络安…...

三步搞定!用bilidown轻松下载B站8K超清视频的完整指南

三步搞定!用bilidown轻松下载B站8K超清视频的完整指南 【免费下载链接】bilidown 哔哩哔哩视频解析下载工具,支持 8K 视频、Hi-Res 音频、杜比视界下载、批量解析,可扫码登录,常驻托盘。 项目地址: https://gitcode.com/gh_mirr…...

ArduPilot开源飞控之飞行模式切换机制解析

1. ArduPilot飞行模式概述 第一次接触ArduPilot时,最让我震撼的就是它丰富的飞行模式。就像开车时有手动挡、自动挡、运动模式一样,无人机也需要根据不同的飞行场景选择合适的"驾驶模式"。举个例子,新手练习时用Stabilize模式就像开…...

全网最全!网络安全全岗位解析(2026版)

全网最全!网络安全全岗位解析(2026版) 摘要:随着数字化转型加速,网络安全已成为企业、政务、互联网大厂的核心刚需,人才缺口持续扩大,2026年国内网络安全人才缺口已突破327万,全球缺…...

从零到上线:手把手教你用LLaMA-Factory + Python脚本自动化微调Qwen2.5模型

从零到上线:手把手教你用LLaMA-Factory Python脚本自动化微调Qwen2.5模型 在AI模型开发领域,微调预训练模型已成为快速适配特定任务的主流方法。然而,传统微调流程往往需要开发者反复手动调整配置文件、执行训练命令、监控训练过程&#xff…...

运维面试别再背八股文了!这15道高频笔试题,我用真实排错案例给你讲透

运维面试突围指南:用真实故障案例拆解15道高频技术题 去年冬天的一个凌晨,我接到了一通紧急电话——某电商平台的支付系统突然瘫痪,每分钟损失超过六位数。当我顶着寒风赶到机房时,发现这只是因为一个简单的NTP时间不同步问题。这…...

LangChain4j向量化实战避坑:OpenAI、本地模型、Qdrant选哪个?我的踩坑记录

LangChain4j向量化实战避坑指南:OpenAI、本地模型与Qdrant的深度抉择 当Java开发者尝试构建基于大语言模型的应用时,LangChain4j框架中的向量化组件往往成为技术栈选型的第一个分水岭。我在三个实际项目中分别尝试了不同组合方案后,发现每个…...

小产后吃什么恢复快?科学修护助力身体回归健康

小产对女性身体的损伤不容忽视,气血亏虚、子宫损伤等问题若调理不当,可能留下长期健康隐患。当前,小产后修护已成为女性健康领域的重要关注点,如何通过科学方式实现高效恢复,避免浅层调理带来的后续问题,是…...

C语言数组操作:3种移除元素方法实战对比(附LeetCode真题解析)

C语言数组操作:3种移除元素方法实战对比(附LeetCode真题解析) 在算法面试和日常编程中,数组操作是最基础也最常考察的技能点之一。移除数组中特定元素这类看似简单的任务,却能很好地检验程序员对内存管理、算法效率和…...

重新定义开源RTS体验:Beyond All Reason深度技术解析

重新定义开源RTS体验:Beyond All Reason深度技术解析 【免费下载链接】Beyond-All-Reason www.beyondallreason.info 项目地址: https://gitcode.com/gh_mirrors/be/Beyond-All-Reason Beyond All Reason是一款基于Spring引擎开发的开源实时战略游戏&#xf…...

彻底禁用fmt库文件系统依赖:从编译到代码的全链路方案

彻底禁用fmt库文件系统依赖:从编译到代码的全链路方案 【免费下载链接】fmt A modern formatting library 项目地址: https://gitcode.com/GitHub_Trending/fm/fmt 在C项目中,fmt库是一个现代格式化库,它提供了高效的类型安全格式化功…...