有没有什么办法可以使用Eclipse在Java字符串文字中编写(复制 – 粘贴)格式良好的SQL查询?
当我希望在Java中使用SQL查询时,我通常将它们保存在最终的String变量中。 现在,当字符串太大时,它会超出页面宽度,我们要么必须手动打破它(在eclipse中,转到字符串中的特定位置,然后输入,并为每个较小的字符执行此操作部分),或者我们可以在Eclipse中设置格式化程序,每行只允许(比方说)100个字符。 但字符串不会以合乎逻辑的方式被破坏。
我可以在SQL Developer(比如说)中很好地格式化一个查询,但如果我将它粘贴到Java中,我将不得不手动设置所有的结束引号,并使用+
符号使其成为正确的Java字符串。 我只是想知道如何将格式正确的SQL查询直接复制粘贴到Java文件中。 我正在使用Eclipse。
也许当查询格式如下:
SELECT * FROM something WHERE id=4;
然后当它粘贴在一个java字符串中时,我们就可以这样:
"SELECT" + " *" + " FROM" + " something" + " WHERE"; id=4;
在Eclipse中,在Java> Editor> Typing下的Window> Preferences中,选中“粘贴到字符串文字时转义文本”复选框。
它将格式化纯文本:
line1 line2 line3
至:
private final String TEXT = "line1\r\n" + "line2\r\n" + "line3";
这是Eclipse Helios的输出。 一个类似的问题: 用引号括起来
如果您不介意生成的SQL输出中的额外空格,这是一个创造性的解决方案:
第1步:粘贴
将格式化的SQL语句逐字粘贴到Java文件中
第2步:写开场报价
注意突出显示的按钮,左起第六个。 这是令人敬畏的“块选择模式”(Windows上的Alt-Shift-A)。 它允许您在同一位置的每个选定行上写入开头报价
第3步:编写结束引号和连接
对结束引号和串联符号应用相同的技术( +
)
第4步:修复分号
这里不需要评论。
在SQLDeveloper
,选择查询并使用Ctrl + F7
进行格式化。 再次选择它并使用Ctrl + Shift + F7
进行格式化,选择Clipboard
作为输出目标,输出类型为所需类型,然后单击Apply
。 现在,将其粘贴到Eclipse编辑器中并查看差异。
我正在使用SQLDeveloper的3.1.07版。
实际上这是一个非常好的问题,我也常常对此感到疑惑。 我可以给你的一个提示是使用以下内容:
//@formatter:off private static final String QUERY = "SELECT t.* " + "FROM table t " + "WHERE t.age > 18"; //@formatter:on
它不会将SQL查询转换为Java String文字,但它使Eclipse无法重新格式化您的String,这是不可读的。
我知道我参加这个派对已经迟到了,但是对于任何使用大型查询的人来说,Eclipse中的块模式可能很难处理,因为如果你的查询超过100行,那么它会慢下来(取决于在你的机器上)。
我找到了这个网站,它非常简单,非常快。 将代码发布到窗口中,添加前缀(“)并添加后缀(”+“并单击另存为。 它会很快地为每一行添加前缀和后缀。
这是在线工具:
对于DbVisualizer
,您可以使用Ctrl + Alt + K
将sql格式化为所需的模式。
这非常接近:如何使用前导空格粘贴SQL缩进: https : //stackoverflow.com/a/121513/1665128
String sql = "SELECT\n" + " *\n" + " FROM\n" + " something\n" + " WHERE\n" + " id=4;";