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

自己做网站做淘宝客古田网站建设

自己做网站做淘宝客,古田网站建设,项目,莆田网站开发公司电话SQL to Excel Exporter 源码功能特性核心功能性能优化安全特性 快速开始环境要求安装运行 API 使用说明1. 执行SQL并导出Excel2. 下载导出文件3. 获取统计信息4. 清理过期文件 数据脱敏配置支持的脱敏类型脱敏规则配置示例 配置说明应用配置数据库配置 测试运行单元测试运行集成…

SQL to Excel Exporter

    • 源码
    • 功能特性
      • 核心功能
      • 性能优化
      • 安全特性
    • 快速开始
      • 环境要求
      • 安装运行
    • API 使用说明
      • 1. 执行SQL并导出Excel
      • 2. 下载导出文件
      • 3. 获取统计信息
      • 4. 清理过期文件
    • 数据脱敏配置
      • 支持的脱敏类型
      • 脱敏规则配置示例
    • 配置说明
      • 应用配置
      • 数据库配置
    • 测试
      • 运行单元测试
      • 运行集成测试
      • 测试覆盖率
    • 使用示例
      • 1. 基础导出
      • 2. 带脱敏的导出
      • 3. 并行执行多个查询
    • 性能建议
    • 故障排除
      • 常见问题
      • 日志配置
    • 贡献指南

一个基于Spring Boot的高性能SQL查询结果导出Excel工具,支持批量SQL执行、数据脱敏、并行处理等功能。

在这里插入图片描述

源码

https://github.com/ShouZhiDuan/easydo/tree/main/sql-to-excel

功能特性

核心功能

  • 批量SQL执行: 支持一次性执行多个SQL查询语句
  • Excel导出: 将查询结果导出到Excel文件,每个SQL结果对应一个Sheet
  • 自定义Sheet名称: 用户可以为每个Sheet指定名称
  • 数据脱敏: 支持手机号、身份证、邮箱等常见字段的脱敏处理
  • 并行执行: 支持并行执行SQL查询,提高处理效率
  • 安全验证: SQL安全性检查,防止危险操作

性能优化

  • 🚀 流式处理: 使用SXSSFWorkbook支持大数据量导出
  • 🚀 连接池: 配置数据库连接池,提高数据库访问效率
  • 🚀 缓存机制: 脱敏规则正则表达式缓存,提高处理速度
  • 🚀 内存控制: 可配置内存中保持的行数,避免内存溢出

安全特性

  • 🔒 SQL注入防护: 基础SQL安全性验证
  • 🔒 数据脱敏: 多种脱敏规则,保护敏感数据
  • 🔒 文件访问控制: 限制文件下载路径,防止路径遍历攻击

快速开始

环境要求

  • Java 17+
  • Maven 3.6+
  • 数据库(MySQL/PostgreSQL/H2等)

安装运行

  1. 克隆项目
git clone <repository-url>
cd sql-csv
  1. 配置数据库
    编辑 src/main/resources/application.yml 文件,配置数据库连接:
spring:datasource:url: jdbc:mysql://localhost:3306/your_databasedriver-class-name: com.mysql.cj.jdbc.Driverusername: your_usernamepassword: your_password
  1. 编译运行
# 编译项目
mvn clean compile# 运行测试
mvn test# 启动应用
mvn spring-boot:run
  1. 访问应用
  • 应用地址: http://localhost:8080
  • H2控制台: http://localhost:8080/h2-console (仅测试环境)
  • 健康检查: http://localhost:8080/api/sql-export/health

API 使用说明

1. 执行SQL并导出Excel

接口: POST /api/sql-export/export

请求示例:

{"sqlList": ["SELECT id, username, email, phone FROM users LIMIT 100","SELECT id, product_name, price FROM products WHERE price > 1000"],"sheetNames": ["用户数据", "产品数据"],"fileName": "export_report.xlsx","parallelExecution": false,"validateSqlSafety": true,"maskingRules": [{"fieldName": "phone","maskingType": "PHONE","enabled": true},{"fieldName": "email","maskingType": "EMAIL","enabled": true}]
}

响应示例:

{"code": 200,"message": "导出成功","success": true,"filePath": "/path/to/export_report.xlsx","fileSize": 15360,"sqlCount": 2,"totalRecords": 150,"recordCounts": [100, 50],"processingTimeMs": 1250,"createdAt": "2024-01-15T10:30:00"
}

2. 下载导出文件

接口: GET /api/sql-export/download?filePath=/path/to/file.xlsx

3. 获取统计信息

接口: GET /api/sql-export/statistics

4. 清理过期文件

接口: DELETE /api/sql-export/cleanup?daysToKeep=7

数据脱敏配置

支持的脱敏类型

类型说明示例
PHONE手机号脱敏138****5678
ID_CARD身份证脱敏110101********1234
EMAIL邮箱脱敏abc***@example.com
BANK_CARD银行卡脱敏6222****7890
NAME姓名脱敏张*三
CUSTOM自定义规则用户自定义正则

脱敏规则配置示例

{"maskingRules": [{"fieldName": "phone","maskingType": "PHONE","enabled": true},{"fieldName": "custom_field","maskingType": "CUSTOM","customRegex": "(\\d{4})\\d*(\\d{4})","customReplacement": "$1****$2","enabled": true}]
}

配置说明

应用配置

app:export:output-directory: ./exports          # 导出文件目录max-sql-count: 50                   # 最大SQL数量max-records-per-query: 100000       # 单个查询最大记录数enable-parallel-execution: true      # 是否启用并行执行default-file-retention-days: 7       # 默认文件保留天数security:enable-sql-validation: true          # 是否启用SQL安全验证allowed-download-paths:              # 允许下载的路径- ./exportsperformance:excel-rows-in-memory: 1000          # Excel内存中保持的行数sql-timeout-seconds: 300            # SQL执行超时时间thread-pool-size: 4                 # 线程池大小

数据库配置

支持多种数据库:

MySQL:

spring:datasource:url: jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: usernamepassword: password

PostgreSQL:

spring:datasource:url: jdbc:postgresql://localhost:5432/databasedriver-class-name: org.postgresql.Driverusername: usernamepassword: password

测试

运行单元测试

mvn test

运行集成测试

mvn verify

测试覆盖率

mvn jacoco:report

使用示例

1. 基础导出

curl -X POST http://localhost:8080/api/sql-export/export \-H "Content-Type: application/json" \-d '{"sqlList": ["SELECT * FROM users LIMIT 10"],"sheetNames": ["用户列表"]}'

2. 带脱敏的导出

curl -X POST http://localhost:8080/api/sql-export/export \-H "Content-Type: application/json" \-d '{"sqlList": ["SELECT username, phone, email FROM users"],"sheetNames": ["用户信息"],"maskingRules": [{"fieldName": "phone", "maskingType": "PHONE", "enabled": true},{"fieldName": "email", "maskingType": "EMAIL", "enabled": true}]}'

3. 并行执行多个查询

curl -X POST http://localhost:8080/api/sql-export/export \-H "Content-Type: application/json" \-d '{"sqlList": ["SELECT * FROM users","SELECT * FROM orders","SELECT * FROM products"],"sheetNames": ["用户", "订单", "产品"],"parallelExecution": true}'

性能建议

  1. 大数据量处理:

    • 使用LIMIT限制查询结果数量
    • 启用并行执行提高效率
    • 适当调整excel-rows-in-memory参数
  2. 内存优化:

    • 避免一次性查询过多数据
    • 及时清理过期文件
    • 监控JVM内存使用情况
  3. 数据库优化:

    • 确保查询SQL有适当的索引
    • 配置合适的连接池大小
    • 避免长时间运行的查询

故障排除

常见问题

  1. 内存溢出

    • 减少max-records-per-query配置
    • 增加JVM堆内存: -Xmx2g
    • 减少excel-rows-in-memory配置
  2. SQL执行超时

    • 增加sql-timeout-seconds配置
    • 优化SQL查询性能
    • 检查数据库连接状态
  3. 文件生成失败

    • 检查输出目录权限
    • 确保磁盘空间充足
    • 查看应用日志错误信息

日志配置

logging:level:com.example.sqlcsv: DEBUGfile:name: ./logs/sql-csv-exporter.log

贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

文章转载自:

http://f7I8vepY.kpxnz.cn
http://EsTEVUsE.kpxnz.cn
http://8Cx0lLr7.kpxnz.cn
http://QeLRGsbL.kpxnz.cn
http://kj4wwG82.kpxnz.cn
http://Ide2o30Q.kpxnz.cn
http://keNXnX5J.kpxnz.cn
http://7kUyZIJq.kpxnz.cn
http://qlIhrtwv.kpxnz.cn
http://cPjk20Xc.kpxnz.cn
http://kcDrjlnO.kpxnz.cn
http://rQrR1G50.kpxnz.cn
http://qSvKCOU0.kpxnz.cn
http://cBR5DWMd.kpxnz.cn
http://AeXdB2kc.kpxnz.cn
http://9psCgnsU.kpxnz.cn
http://LxSE5Ngk.kpxnz.cn
http://5h3tuHdX.kpxnz.cn
http://YhUgTMAw.kpxnz.cn
http://Hs4NisYE.kpxnz.cn
http://HfyJVnlt.kpxnz.cn
http://Y8mf0d6q.kpxnz.cn
http://w5lIreDe.kpxnz.cn
http://LCd0Kzzn.kpxnz.cn
http://KOzkJlj3.kpxnz.cn
http://snM0oGL7.kpxnz.cn
http://UPQ278aj.kpxnz.cn
http://hoWx99vD.kpxnz.cn
http://DcUhPqZt.kpxnz.cn
http://HgCznQ5U.kpxnz.cn
http://www.dtcms.com/wzjs/670924.html

相关文章:

  • seo蒙牛伊利企业网站专业性诊断WordPress cosy 主题
  • 公司网站搜索不到wordpress 评论图片 代码
  • 有什么好看的网站设计合理的h5制作开发
  • 怎么看待网站开发网站推广的图片
  • 怎么介绍vue做的购物网站项目企业应该如何进行网站推广
  • wordpress多站点教程thinkphp做网站有什么好处
  • 色卡网站装饰设计软件
  • 网站建设51jyoo杭州网站建设公司有哪些
  • 大型网站开发协调企业信息管理系统包括
  • 如何建立公司网站电话吴江网站建设哪家好
  • 汕头网站推广seo仓库管理系统网站建设
  • 专门做旅游的网站微信小程序怎么创建店铺
  • 保定城乡建设局网站做医疗类网站有什么需要审核的
  • 网站开发需要用到哪些软件自己的网站做app
  • 网站开发大学有哪些商城系统
  • 品牌网站设计制作哪家正规潍坊市建设工程交易中心网站
  • 网站主机选择与优化wordpress 收不到邮件
  • 织梦网站名称标签做网站能用ai好还是ps
  • 自己做网站必须要学哪些重庆市渝快办官网
  • 南通公司网站建设网页设计参考板式
  • 无线网站制作校园网站建设与应用
  • 电子商务网站建设与维护李建忠招商网官网
  • 银饰品网站建设规划策划书物联网开发软件有哪些
  • 青岛网站建设企业建站重庆江北营销型网站建设公司推荐
  • 公司注册网站查询深圳ppt设计制作公司
  • 学做婴儿衣服网站天津在线制作网站
  • 网站关键词找不到建筑信息平台app
  • 诏安县城乡建设局网站如何做好百度推广
  • 旅游网站制作建设青海省建设厅官方网站
  • 做网站联盟要多少钱营销型网站怎么做