gpt4 book ai didi

mysql - 是否有一个好的 DSL 可以独立于任何特定的 Web 框架来操作 MySQL 脚本?

转载 作者:可可西里 更新时间:2023-11-01 06:50:28 24 4
gpt4 key购买 nike

我有一个简单的 MySQL 脚本,我在 Web 应用程序中使用它来完成重建/将我的数据库重置为干净的初始状态。因此,在这个脚本中,我定义了我需要的各种表、存储过程等。

这是一个相当不错的初始解决方案,因为它很简单并且可以完成工作而不会矫枉过正。但是也有一些缺点。一个例子是打字。定义具有更丰富类型的存储过程会很好,这样我就不需要重复像 VARCHAR(64) 这样的声明。

因此,我的问题是:是否存在用于操作 MySQL 脚本的良好 DSL?(例如,它最终可以生成有效的 MySQL 脚本)实际上是一种优于 MySQL 的优秀 DSL,而无需尝试这样做很多,有太多的花里胡哨。如果语言本身对 DSL 有很好的支持,那就太好了,但更重要的是,如果能找到与特定 Web 框架没有太大关系的东西,那就太好了。

一些粗略的搜索并没有立即产生任何明显的结果。

我想一个实用的替代方法是只使用您最喜欢的 ORM 作为获得有效解决方案的一种方式。因此,提出这个问题的部分动机是想了解 DSL 方法是否已成功探索。

最佳答案

我假设您指的是内部 DSL(请参阅 http://martinfowler.com/bliki/DomainSpecificLanguage.htmlhttp://en.wikipedia.org/wiki/Domain-specific_language),因为 SQL 是 DSL,即外部 DSL(根据 Martin Fowler 的定义,它已经获得相当大的 yield 广泛接受)。

鉴于该假设,并且不知道您喜欢哪种语言,我能够找到一些用于 SQL 代码生成的内部 DSL:

  • ruby - sqldsl.rubyforge.org/
  • Java - code.google.com/p/sql-dsl/
  • Scala - github.com/p3t0r/scala-sql-dsl

如果你用谷歌搜索“SQL DSL”还有更多,也可以尝试用谷歌搜索“SQL DSL [在此处输入你最喜欢的语言]”,你可能会找到更合适的东西。

另一种具有不同优点和缺点的方法(与内部 DSL 相比)是从模板生成 SQL 代码。具有可变转义(或串联)的字符串形式的模板或使用模板语言的单独文件。

关于mysql - 是否有一个好的 DSL 可以独立于任何特定的 Web 框架来操作 MySQL 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7302794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com