注意:使用 java.util.Properties#loadFromXML 更容易!
如果您使用没有任何外部库的普通 Java JDBC,您将需要管理您自己的 SQL 语句。不幸的是,Java String 不支持多行构造,您必须使用许多“引号”+“连接”,这使得 SQL 很难阅读和管理。这使得维护和测试变得困难(尝试将 SQL 从 Java 代码复制到您的 SQL 客户端)。如果没有这些 Java 干扰,保持整个 SQL 文本块完好无损,那就太好了。
这是一个快速的解决方案。在 CDATA 中以 XML 格式存储您的 SQL 查询:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sqlMap>
<sqls>
<entry>
<key>getUser</key>
<value><![CDATA[
SELECT *
FROM USERS
WHERE ID = ?
]]></value>
</entry>
<entry>
<key>getSpecialCodeByUserId</key>
<value><![CDATA[
SELECT u.EMAIL, p.ID as PROFILEID, p.SPECIALCODE, a.MANAGERID
FROM USERS u
LEFT JOIN PROFILE p ON p.USERID = u.ID
LEFT JOIN ACCOUNT a ON a.PROFILEID = p.ID
WHERE u.ID = ? ]]></value>
</entry> </sqls>
</sqlMap>
现在你只需要阅读它。您可以使用内置的 JAXB 快速完成此操作
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sqlMap>
<sqls>
<entry>
<key>getUser</key>
<value><![CDATA[
SELECT *
FROM USERS
WHERE ID = ?
]]></value>
</entry>
<entry>
<key>getSpecialCodeByUserId</key>
<value><![CDATA[
SELECT u.EMAIL, p.ID as PROFILEID, p.SPECIALCODE, a.MANAGERID
FROM USERS u
LEFT JOIN PROFILE p ON p.USERID = u.ID
LEFT JOIN ACCOUNT a ON a.PROFILEID = p.ID
WHERE u.ID = ? ]]></value>
</entry> </sqls>
</sqlMap>