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

时间:2012-09-14 08:27:09

标签: java sql resources openedge

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

此方法没有问题,但由于SQL读取机制只是简单地读取整个文件,因此该文件中的任何注释都可能导致读取失败,如果它们位于行的末尾,就像读取它时一样多余的空格并删除新行。完整注释行(即以--开头的行将被删除)。

我可以增强读取文件和删除注释行等的简单读取,但我不得不怀疑是否有可以读取SQL文件并清理它的东西。

1 个答案:

答案 0 :(得分:0)

我已经看到在我通过以XML格式存储查询并在运行时将XML加载到自定义StoredQueriesCache对象的项目中解决了同样的问题。为了获得查询,我们将在StoredQueriesCache对象上调用一个方法,只传递查询名称(在XML中定义),它将返回查询。

写这样的东西很简单。 XML看起来如下所示......

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

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

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

相关问题