2012-07-31 30 views
3

我的应用程序需要外部化查询,所以为了使用默认资源包,我决定在属性文件中使用查询。所以,这里的属性文件看起来像现在:如何使用格式化的sql加载属性文件?

SELECT_USER_QUERY = Select username, userid from user where userid=? 

INSERT_USER_QUERY = insert into user values (?,?) 

这里的问题显然不是一个搅局者 - 这个属性文件被拾起,并得到很好的处理,但对于有人在不久的将来进行编辑,它看​​起来丑陋。我想这样的事情:

SELECT_USER_QUERY = select username, userid 
        from user 
        where userid=? 

我想在我的属性文件中看到格式。我认为有一种方法可以在每行结尾处引入一个“\”(如SO中的一些答案)。有没有其他方法可以在属性文件中保留格式并仍能成功加载?

+0

你可以使用“\” - 这是真的。但是您可能想要使用XML。还有一些映射框架(例如ibatis),它允许您外部化SQL – 2012-07-31 14:27:32

+0

您是否想过用于查询的XML文件? – 2012-07-31 14:31:25

+0

不 - 我想避免使用XML。对于像这样简单的任务来说,太复杂了。 – Jay 2012-07-31 14:37:54

回答

0

好的。我认为一种解决方法(很可能我会)将所有查询写入属性文件,但每个查询值都跨越多个格式化的行。我将使用自定义的ResourceBundle以自定义的方式加载这些属性。这样,我可以确保使用ResourceBundle在属性文件中进行格式设置,并且还可以编写明智的加载属性。

3

只需在行尾添加一个\,不能将其解释为换行符。 没有其他方法来保留属性文件中的格式(换行符)

+0

好的。错过链接中断的几率非常高,在查询被测试之前不会弹出。我想我会需要更好的东西。 – Jay 2012-07-31 14:37:16

2

没有理由限制自己属性文件。为什么不简单地将上述内容存储在文本文件中,并且每个查询/语句都有(说)一个文本文件?这样,有人可以编辑文本文件,而不必担心属性样式的格式。

+0

这是我正在考虑的一个选项。但每个查询一个文本文件将导致太多的文本文件 - 我想避免这种情况。 – Jay 2012-07-31 14:34:49

相关问题