Подтвердить что ты не робот

Есть ли способ написать (скопировать-вставить) хорошо отформатированные 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;
4b9b3361

Ответ 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;";