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

sql格式化自动识别SQL语法结构

一、安装包

PoorMansTSqlFormatterLib

二、代码实现

using Microsoft.AspNetCore.Mvc;
using PoorMansTSqlFormatterLib.Formatters;
using PoorMansTSqlFormatterLib.Parsers;
using PoorMansTSqlFormatterLib.Tokenizers;namespace SaaS.OfficialWebSite.Web.Controllers
{public class SqlFormatController : Controller{public IActionResult Index(){return View();}[HttpPost]public IActionResult FormatSql([FromBody] FormatRequest request){try{var options = new TSqlStandardFormatterOptions{IndentString = request.Options.IndentWithTabs ? "\t" : "    ",SpacesPerTab = 4,MaxLineWidth = 999,KeywordStandardization = request.Options.UppercaseKeywords,TrailingCommas = request.Options.TrailingCommas,SpaceAfterExpandedComma = request.Options.SpaceAfterExpandedComma,ExpandCommaLists = true,ExpandBooleanExpressions = true,ExpandCaseStatements = true,ExpandBetweenConditions = true,ExpandInLists = true,BreakJoinOnSections = true,UppercaseKeywords = request.Options.UppercaseKeywords};var tokenizer = new TSqlStandardTokenizer();var parser = new TSqlStandardParser();var formatter = new TSqlStandardFormatter(options);var tokenized = tokenizer.TokenizeSQL(request.Sql);var parsed = parser.ParseSQL(tokenized);var formattedSql = formatter.FormatSQLTree(parsed);return Ok(new { formattedSql });}catch (Exception ex){return BadRequest(new { error = ex.Message });}}}public class FormatRequest{public string Sql { get; set; }public FormatOptions Options { get; set; }}public class FormatOptions{public bool IndentWithTabs { get; set; }public bool UppercaseKeywords { get; set; }public bool TrailingCommas { get; set; }public bool SpaceAfterExpandedComma { get; set; }}
}

运行效果:SQL 语句格式化

http://www.xdnf.cn/news/14627.html

相关文章:

  • 大塘至浦北高速:解锁分布式光伏“交能融合”密码,引领绿色交通革命
  • 掌握CIS基准合规性:通过自动化简化网络安全
  • 磐维数据库PanWeiDB V2.0-S3.1.1_B01集中式一主二备安装
  • 细谈QT信号与槽机制
  • 覆盖迁移工具选型、增量同步策略与数据一致性校验
  • Unity3D仿星露谷物语开发70之背景音乐
  • 内存泄漏和内存溢出的区别
  • 【机器学习深度学习】非线性激活函数
  • Linux零基础快速入门到精通
  • 学习记录:DAY33
  • 2025.6.24总结
  • 用 Python 打造立体数据世界:3D 堆叠条形图绘制全解析
  • HTML炫酷烟花
  • 微算法科技开发基于布尔函数平方和表示形式的最优精确量子查询算法
  • NLP基础1_word-embedding
  • 利用大型语言模型增强边缘云 AI 系统安全性
  • AI智能化高效办公:WPS AI全场景深度应用指南
  • qt常用控件--03
  • 重点解析(软件工程)
  • 从零学习linux(2)——管理
  • 2025年检测相机十大品牌测评:工业级精度与场景化解决方案解析
  • DeepSeek今天喝什么随机奶茶推荐器
  • Docker知识点汇总——AI教你学Docker
  • 企业主动风险管理破局供应链“黑天鹅”,善用期货
  • Origin绘制三Y轴柱状图、点线图、柱状点线图
  • Spark基于Bloom Filter算法的Runtime Filter Join优化机制
  • STM32 串口通信②:蓝牙模块HC-05控制单片机
  • 以玄幻小说方式打开深度学习词嵌入算法!! 使用Skip-gram来完成 Word2Vec 词嵌入(Embedding)
  • Maven 多模块项目调试与问题排查总结
  • Elasticsearch 索引文档的流程