Sql-Generate
项目介绍
sql-generate 是一个基于java语言开发的项目,它是一个 SQL 生成类的项目,用于某些文件资源映射成对应的 SQL,提高开发效率
背景
在工作当中,会遇到上线前需要初始化数据或上线后线上数据不正确、数据需要清洗等,对于复杂的场景需要写脚本来支持,对于简单的场景往往是写 sql 人工执行,数据的来源往往是某个文件,通过文件解析成对应的 sql,时间一长,每次发生这种事情就会产生不必要的工作量,所以本项目把解析、生产对应的 sql,抽象成对应工具库,提高开发效率
Features
- 支持excel、csv、txt(普通文件) 多种文件解析格式
 - 支持文件解析配置、内容过滤、内容转换
 - 支持数据格式化配置
 - 支持console、file等多种视图展示
 - 解析器、视图展示支持可扩展
 
架构
集成方式
Maven:
1  | xml复制代码<dependency>  | 
Gradle:
1  | arduino复制代码implementation 'com.github.rrsunhome:excelsql-generate:2.0.2'  | 
快速开始
加载普通文件资源
1  | java复制代码 Resource resource = new ClassPathResource("order.txt");  | 
加载 Excel 资源
1  | java复制代码 Resource resource = new ClassPathResource("order-v1.xlsx");  | 
加载 Csv 资源
1  | java复制代码 Resource resource = new ClassPathResource("order.csv");  | 
属性配置
基本解析配置
BaseParserConfig
- titleRowIndex 默认值: 0 标题行下标
 - rowRange 默认值: 全部数据 行数据范围
 - cellName 默认值: 空 列标题
 - cellNum 默认值: 空 列下标
 - CellFilter 默认值: TrueCellFilter 当前列是否过滤,又一列不符合当前行则跳过
 - CellConverter 默认值: ObjectToStringCellConverter 列内容转换器
 
文本解析配置
TextParserConfig
- delimiter 默认值: \t 数据分隔符
 
Excel 解析配置
ExcelParserConfig
- sheetIndex 默认值: 0 sheet 下标
 - sheetName 默认值: 空 sheet 名称
 
Csv 解析配置
CsvParserConfig
- 无特殊配置
 
配置演示
1  | java复制代码 CsvParserConfig parserConfig = new CsvParserConfig();  | 
SQL 格式化配置
SqlFormatConfig
- sql 默认值: 空 sql 模版
 - parameterIndexMapping 默认值:空 参数下标与文件 cell 下标映射
 - Formatter 默认值: com.github.rrsunhome.excelsql.format.MessageFormatter sql 格式化
- com.github.rrsunhome.excelsql.format.MessageFormatter
 - com.github.rrsunhome.excelsql.format.StringFormatter
 
 
配置演示
1  | java复制代码 SqlFormatConfig sqlFormatConfig = new SqlFormatConfig("insert into table(a,b,c) values({0},{1},{2});", new MessageFormatter())  | 
项目地址
本文转载自: 掘金