JAVA导出数据库字典到Excel

文章目录

  • 1、查询某张表字段信息
  • 2、TableVo接收sql查询得到的数据
  • 3、excel导出
  • 4、导出案例


1、查询某张表字段信息

select column_name as columnName, -- 字段名
COLUMN_DEFAULT as colDefault,  -- 默认值
column_key as columnKey, -- PRI-主键,UNI-唯一键,MUL-外键column_comment as columnComment,  -- 字段中文名称column_type as columnType, -- 字段类型IS_NULLABLE as isNullLable -- 是否允许为空from information_schema.columns where table_schema = (select database()) and table_name = ('sys_role_dept') order by ordinal_position

在这里插入图片描述

2、TableVo接收sql查询得到的数据

package com.dtt.web.domain.vo;
import lombok.Data;@Data
public class TableVo {public String columnName; // 字段名public String colDefault; // 默认值public String columnKey; // PRI-主键,UNI-唯一键,MUL-外键public String columnComment; // 字段中文名称public String columnType; // 字段类型public String isNullLable; // 是否为空  YES,NO
}

3、excel导出

注意:需要hutool依赖

@Test
public void exportTable(){String tableName = "ssa_store_info";SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");List<TableVo> sysRoleDept = demoMapper.getList(tableName);List<Map<String, Object>> rows = sysRoleDept.stream().map(a -> {Map<String, Object> row = new LinkedHashMap<>();String PRI = "N"; // 主键String MUL = "N"; // 外键String UNI = "N"; // 唯一String defaultStr = "N";String isNotNull = "N"; // 是否非空if (a.getIsNullLable().equals("NO")) isNotNull = "Y";if (Strings.isNotBlank(a.getColDefault())) defaultStr = a.getColDefault();String columnKey = a.getColumnKey();if (columnKey.equals("PRI")) {PRI = "Y";UNI = "Y";}if (columnKey.equals("MUL")) MUL = "Y";if (columnKey.equals("UNI")) UNI = "Y";row.put("字段中文名", a.getColumnComment());row.put("字段名", a.getColumnName());row.put("数据类型", a.getColumnType());row.put("主键", PRI);row.put("外键", MUL);row.put("唯一", UNI);row.put("非空", isNotNull);row.put("缺省", defaultStr);row.put("描述", a.getColumnComment());return row;}).collect(Collectors.toList());ExcelWriter writer = ExcelUtil.getWriter("e:/"+tableName+sdf.format(new Date())+".xlsx");// 微调一下每个列的宽度writer.setColumnWidth(0,16);writer.setColumnWidth(1,16);writer.setColumnWidth(2,16);writer.setColumnWidth(3,16);writer.setColumnWidth(4,16);writer.setColumnWidth(5,16);writer.setColumnWidth(6,16);writer.setColumnWidth(7,16);writer.setColumnWidth(8,16);//一次性写出内容,强制输出标题writer.write(rows, true);//关闭writer,释放内存writer.close();System.out.println();
}

4、导出案例

在这里插入图片描述

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

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

相关文章

【Tools】 Postman 接口测试工具详解

那年夏天我和你躲在 这一大片宁静的海 直到后来我们都还在 对这个世界充满期待 今年冬天你已经不在 我的心空出了一块 很高兴遇见你 让我终究明白 回忆比真实精彩 &#x1f3b5; 王心凌《那年夏天宁静的海》 在现代软件开发中&#xff0c;API&#xff08;…

【Python实战因果推断】21_倾向分1

目录 The Impact of Management Training Adjusting with Regression 之前学习了如何使用线性回归调整混杂因素。此外&#xff0c;还向您介绍了通过正交化去偏差的概念&#xff0c;这是目前最有用的偏差调整技术之一。不过&#xff0c;您还需要学习另一种技术--倾向加权。这种…

Ionic 卡片:设计和使用指南

Ionic 卡片&#xff1a;设计和使用指南 Ionic 是一个强大的开源框架&#xff0c;用于构建跨平台的移动应用程序。它结合了 Angular、React 和 Vue 的强大功能&#xff0c;允许开发者使用 Web 技术创建高性能的移动应用。Ionic 卡片是框架中的一个核心组件&#xff0c;用于展示…

js使用插件完成xml转json

插件&#xff1a;xml2json.min.js 插件文件下载&#xff08;不能上传附件&#xff09;&#xff1a;https://download.csdn.net/download/zhu_zhu_xia/89513965 html代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset&qu…

我认为一般信息管理应用中使用存储过程高效

总看有些人反对使用存储过程&#xff0c;原因无非是以下几点 1.不利于更换数据库&#xff0c;就是没有移植性 2.不利用调试和扩展 就依据我们大大小小项目&#xff0c;风风雨雨走过近20年&#xff0c;每个系统的业务逻辑处理几乎都是用存储过程实现的&#xff0c;没发现多不…

p标签文本段落中因编辑器换行引起的空格问题完美解决方案

目录 1.修改前的代码&#xff1a;2.修改后的代码3.总结 在HTML文档中&#xff0c;如何要在&#xff08;p标签&#xff09;内写一段很长的文本段落&#xff0c;并且没有 换行。由于IDE或者编辑器界面大小有限或需要在vue中逻辑处理动态显示文本&#xff0c;一行写完太长&#x…

Eslint prettier airbnb规范 配置

1.安装vscode的Eslint和prettier 插件 eslint&#xff1a;代码质量检查工具 https://eslint.nodejs.cn/docs/latest/use/getting-started prettier&#xff1a;代码风格格式化工具 https://www.prettier.cn/docs/index.html /* eslint-config-airbnb-base airbnb 规范 esl…

高德地图轨迹回放并提示具体信息

先上效果图 到达某地点后显示提示语&#xff1a;比如&#xff1a;12&#xff1a;56分驶入康庄大道、左转驶入xx大道等 <!doctype html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"…

【前端CSS3】CSS显示模式(黑马程序员)

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、CSS元素显示模式&#xff1a;☀️☀️☀️2.1 什么是元素显示模式2.2 块元素2.3 行内元素2.4 行块元素2.5 元素显示模式的转换 三、总结&#x1f680;&#x1f680;&#x1f680; 一、前言&#x1f680;&#x1f…

巴图自动化Modbus协议转Profinet协议网关模块连智能仪表与PLC通讯

一、现场要求:PLC作为控制器&#xff0c;仪表设备作为执行设备。执行设备可以实时响应PLC传送的指令&#xff0c;并将数据反馈给PLC&#xff0c;从而实现PLC对仪表设备的控制和监控&#xff0c;实现对生产过程的精确控制。 二、解决方案:通过巴图自动化Modbus协议转Profinet协议…

前端面试题4(浏览器对http请求处理过程)

浏览器对http请求处理过程 当我们在浏览器中输入URL并按下回车键时&#xff0c;浏览器会执行一系列步骤来处理HTTP请求并与服务器通信。下面是浏览器处理过程 1. 解析URL 浏览器首先解析输入的URL&#xff0c;提取出协议&#xff08;通常是http://或https://&#xff09;、主…

Robust Test-Time Adaptation in Dynamic Scenarios--论文阅读

论文笔记 资料 1.代码地址 https://github.com/BIT-DA/RoTTA 2.论文地址 https://arxiv.org/abs/2303.13899 3.数据集地址 coming soon 1论文摘要的翻译 测试时间自适应(TTA)旨在使预先7训练的模型适用于仅具有未标记测试数据流的测试分布。大多数以前的TTA方法已经在…

为什么要卸载手机上面的抖音?

删除抖音等社交媒体应用可能出于多种原因&#xff0c;这里列举一些常见的考虑因素&#xff1a; 1. **时间管理**&#xff1a; 抖音和其他社交媒体平台可能会占用大量时间&#xff0c;影响个人的日常生活和工作学习效率。 这个对于自己而言是一个客观存在的事情&#xff1a; 2.…

安卓请求服务器[根据服务器的内容来更新spinner]

根据服务器的内容来更新spinner 本文内容请结合如下两篇文章一起看: 腾讯云函数node.js返回自动带反斜杠 腾讯云函数部署环境[使用函数URL] 现在有这样一个需求,APP有一个下拉选择框作为版本选择,因为改个管脚就变成一个版本,客户需求也很零散,所以后期会大量增加版本,这时候每…

数据预处理:统计关联性分析/数据清洗/数据增强/特征工程实例

专栏介绍 1.专栏面向零基础或基础较差的机器学习入门的读者朋友,旨在利用实际代码案例和通俗化文字说明,使读者朋友快速上手机器学习及其相关知识体系。 2.专栏内容上包括数据采集、数据读写、数据预处理、分类\回归\聚类算法、可视化等技术。 3.需要强调的是,专栏仅介绍主…

gitLab使用流程

标题1.配置账户 git config --global user.name git config --global user.email mygitlabmali.cn 标题2.生成秘匙 ssh-keygen -t rsa -C “mygitlabmail.cn” 。 //输入命令后一直回车 &#xff0c;输入命令后一直回车&#xff08;密码可以不填&#xff09;&#xff0c;至…

Java面试题系列 - 第2天

题目&#xff1a;Java中的线程池模型及其配置策略 背景说明&#xff1a;在Java多线程编程中&#xff0c;线程池是一种高效的线程复用机制&#xff0c;能够有效管理和控制线程的创建与销毁&#xff0c;避免频繁创建和销毁线程带来的性能开销。理解和掌握线程池的配置策略对于优…

Anaconda+Pycharm两个软件从头到尾下载流程

前言&#xff1a; 1、使用教程前&#xff0c;请将电脑上的所有的Python卸载掉。再下载Anaconda&#xff0c;Anaconda这个软件里面就含有python。 彻底删除python方法&#xff1a; 1、计算机——属性——高级系统设置——环境变量 2、查看电脑用户自己设计的环境变量&#x…

【智能制造-8】输送线运动控制算法

输送线运动控制算法包含哪些内容&#xff1f; 输送线运动控制算法包含以下几个主要内容: 速度控制算法: 根据目标速度和当前实际速度,调整电机的输出功率,达到所需的输送线速度。 常见的算法包括PID控制、自适应控制等。位置/距离控制算法: 监控输送线上物料的位置或移动距离…

Xilinx FPGA:vivado关于RAM的一些零碎的小知识

一、xilinx fpga嵌入式存储单元 RAM----随机存取存储器&#xff1a;上电工作时可以随时从任何一个指定的地址写入&#xff08;存入&#xff09;或读出&#xff08;取出&#xff09;信息。缺点是一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时性存储程序、数…