gpt4 book ai didi

java - 有没有一种干净的方法来读取嵌入式 SQL 资源文件?

转载 作者:行者123 更新时间:2023-12-04 05:17:59 26 4
gpt4 key购买 nike

为了避免在类中将 SQL 语句创建为字符串,我将它们作为 .sql 文件放在同一个包中,并在静态构造函数中将内容读取为字符串。原因是 SQL 非常复杂,因为 SQL 查询的是 ERP 系统。

这个方法没有问题,虽然因为 SQL 读取机制非常简单地只读取整个文件,如果该文件中的任何注释位于行尾,则可能导致读取失败,因为在第一次读取时会删除多余的空格并删除换行符。完整注释行(即删除以 -- 开头的行)。

我可以增强简单阅读以读取文件并删除注释行等,尽管我想知道是否已经有可用的东西可以读取 SQL 文件并清理它。

最佳答案

我在我从事的一个项目中看到了同样的问题,方法是将查询存储在 XML 中,并在运行时将 XML 加载到自定义的 StoredQueriesCache 对象中。要获取查询,我们将在 StoredQueriesCache 对象上调用一个方法并仅传递查询名称(在 XML 中定义),它会返回查询。

写这样的东西相当简单。 XML 如下所示...

<Query>
<Name>SomeUniqueQueryName</Name>
<SQL>
SELECT someColumn FROM someTable WHERE somePredicate
</SQL>
</Query>

每个存储的查询都有一个元素。 XML 将在应用程序启动时从文件加载到内存中,或者根据您的需要,它可以从文件延迟加载。然后,保存 XML 的 StoredQueriesCache 对象将具有按名称返回单个查询的方法。根据我的经验,在查询中添加注释从来不会导致任何问题,因为换行符是 XML 节点内部文本的一部分,但如果您希望检索查询的 StoredQueriesCache 方法可以解析注释。

我发现这是最有条理的存储查询的方式,无需将查询嵌入代码,也无需使用存储过程。老实说,应该有一个图书馆可以为您做这件事;也许我会写一个!

关于java - 有没有一种干净的方法来读取嵌入式 SQL 资源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12420701/

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