Есть ли способ написать (скопировать-вставить) хорошо отформатированные SQL-запросы в строковых литералах Java с помощью Eclipse?
Когда я хочу использовать SQL-запросы в Java, я обычно держу их в конечных переменных String. Теперь, когда строка слишком велика, она выходит из ширины страницы, и мы либо должны ее вручную разбить (в eclipse, перейдите в конкретное место в строке и поместите ввод, и сделайте это для каждого из полученных меньших part), или мы можем установить форматтер в Eclipse, чтобы разрешить (скажем) 100 символов в строке. Но строка не ломается логически.
Я могу хорошо отформатировать запрос в SQL Developer (скажем), но если я вставлю его в Java, мне придется вручную установить все концевые кавычки и символы +
, чтобы сделать его правильной строкой Java. Я просто хочу знать, как правильно отформатированный SQL-запрос скопирован непосредственно в файл Java. Я использую Eclipse.
Возможно, когда запрос отформатирован следующим образом:
SELECT
*
FROM
something
WHERE
id=4;
тогда, когда он вставлен внутри строки java, мы можем иметь его как:
"SELECT" +
" *" +
" FROM" +
" something" +
" WHERE";
id=4;
Ответы
Ответ 1
В Eclipse в окне > Предпочтения в Java > Редактоp > Ввод установите флажок "Исключить текст при вставке в строковый литерал".
Он будет форматировать простой текст:
line1
line2
line3
в
private final String TEXT = "line1\r\n" +
"line2\r\n" +
"line3";
Это результат работы Eclipse Helios.
Аналогичный вопрос: Окружать кавычками
Ответ 2
Вот творческое решение, если вы не возражаете против лишних пробелов в сгенерированном выводе SQL:
Шаг 1: Вставить
![enter image description here]()
Вставить форматированный оператор SQL в файл Java
Шаг 2: Запись кавычек открытия
![enter image description here]()
Обратите внимание на выделенную кнопку, шестую слева. Это потрясающий "Режим выбора блока" (Alt-Shift-A в Windows). Он позволяет писать кавычки открытия на каждой выбранной строке в той же позиции
Шаг 3: Записать закрывающие кавычки и конкатенацию
![enter image description here]()
Применить ту же технику для закрывающих кавычек и знака конкатенации (+
)
Шаг 4: Исправьте полуколону
![enter image description here]()
Здесь нет комментариев.
Ответ 3
Когда вы находитесь в SQLDeveloper
, выберите запрос и используйте Ctrl + F7
для его форматирования. Выделите его еще раз и используйте Ctrl + Shift + F7
для его форматирования, выберите Clipboard
для назначения вывода, тип вывода в качестве требуемого типа и нажмите Apply
. Теперь вставьте его в редактор Eclipse и увидите разницу.
Я использую версию 3.1.07 SQLDeveloper.
Ответ 4
На самом деле действительно хороший вопрос, я часто об этом спрашиваю. Один совет, который я могу вам дать, заключается в следующем:
//@formatter:off
private static final String QUERY =
"SELECT t.* " +
"FROM table t " +
"WHERE t.age > 18";
//@formatter:on
Он не преобразует SQL-запрос в литерал Java String, но он заставляет Eclipse переформатировать вашу строку неудобно нечитаемой.
Ответ 5
Я знаю, что я опаздываю на эту вечеринку, но для тех, кто использует большие запросы, блочный режим в Eclipse может быть очень трудным для работы, потому что он замедляется, если у вас есть запрос с более чем 100 строк или поэтому (в зависимости от вашей машины).
Я нашел этот сайт, и это очень просто и очень быстро. Отправьте свой код в окно, добавьте префикс ( ") и добавьте суффикс (" + ") и нажмите" Сохранить как ". Он добавит префикс и суффикс к каждой строке довольно быстро.
Здесь онлайн-инструмент:
http://textmechanic.co/Add-Prefix-Suffix-to-Text.html
Ответ 6
Для DbVisualizer
вы можете использовать Ctrl + Alt + K
для форматирования вашего sql для желаемого шаблона.
Ответ 7
Это довольно близко: как вставить SQL с отступом с ведущими пробелами:
fooobar.com/info/18070/...
String sql =
"SELECT\n" +
" *\n" +
" FROM\n" +
" something\n" +
" WHERE\n" +
" id=4;";