- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了避免在类中将 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/
我是一名优秀的程序员,十分优秀!