Java 如何加载包含格式化sql的属性文件?

Java 如何加载包含格式化sql的属性文件?,java,sql,properties-file,Java,Sql,Properties File,我的应用程序需要外部化查询,所以为了使用默认的resourcebundle,我决定使用属性文件中的查询。下面是属性文件现在的样子: SELECT_USER_QUERY = Select username, userid from user where userid=? INSERT_USER_QUERY = insert into user values (?,?) 这里的问题显然不是一个showstopper——这个属性文件会被拾取并得到很好的处理,但是对于在不久的将来进行编辑的人来说,它

我的应用程序需要外部化查询,所以为了使用默认的resourcebundle,我决定使用属性文件中的查询。下面是属性文件现在的样子:

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

INSERT_USER_QUERY = insert into user values (?,?)
这里的问题显然不是一个showstopper——这个属性文件会被拾取并得到很好的处理,但是对于在不久的将来进行编辑的人来说,它看起来很难看。我想要这样的东西:

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

我想在我的属性文件中查看该格式。我认为一种方法是在每一行的末尾引入一个“\”(根据上面的一些答案)。有没有其他方法可以在属性文件中保留格式并仍能成功加载它?

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

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

好的。我认为一种方法(我很可能会)是将所有查询写入属性文件,但每个查询值都跨越多个格式化行。我将使用自定义ResourceBundle以自定义方式加载这些属性。通过这种方式,我可以确保属性文件中有格式,也可以使用ResourceBundle以代码方式加载属性。

您可以使用“\”-这是正确的。但是,您可能希望改用XML。还有许多映射框架(例如ibatis),它允许您将SQLsHave外部化。您是否考虑过用于查询的XML文件?否-我希望避免使用XML。对于这样一个简单的任务来说太复杂了。我的程序并没有复杂到需要ORM。这是我现在正在考虑的一个选项。但是每个查询一个文本文件将导致太多的文本文件-我希望避免这种情况。好的。错过链接中断的可能性非常高,在测试该查询之前不会弹出。我想我需要更好的东西。