#java
Интересует случай многострочных констант при переносе со строки на строку. Собственно сейчас делаю так String query = "SELECT city" + "FROM cities " + "WHERE city='Moscow'";
Ответы
Ответ 1
раньше так делал: private static final String SELECT_DUMMY = "" + "SELECT * AS TITLE FROM DUAL" ; private static final String LIST_ACCOUNTS = "" + "SELECT * FROM ACCOUNTS" ; private static final String GET_USER_PREFERENCES = "" + "SELECT p.* " + "FROM USER_PREFERENCES up, USERS u" + "WHERE up.user_id = u.id" + "AND u.login_id = ?"; преимущество в том что запрос выглядит практически так же как и в IDE для СУБД (toad/sql developer), большую часть правок можно делать прямо в коде. минус же в том, что неудобно копировать запрос для редактирования в IDE (копируется в месте служебными символами языка для формирования строки), лечится выводом констант в sys out. p.s. раньше так делал сейчас широко используются ORM фреймворки, поэтому хардкод запросов в константах выглядит как минимум странноватоОтвет 2
Вообще "плюсовать" строки при помощи "+" если составных строк больше двух - не правильный подход. Почему можете почитать например тут. Попробуйте использовать для таких случаев class StringBuffer. Пример: String query = new StringBuffer() .append("SELECT city ") .append("FROM cities ") .append("WHERE city='Moscow'") .toString();Ответ 3
Я лично пишу так: String sql = "" // + "select count(TASK_FOR_DATE_ID) " // + "from CO.TASK_FOR_DATE tfd " // + " join CO.TASK t on (tfd.TASK_ID=t.TASK_ID) " // + "where (tfd.START_TIME between ? and ?)"; Преимущество в том, что если использовать автоматическое форматирование кода, то строки не скачут туда-сюда.Ответ 4
public static final String WHITE_SPACE = " ";
Комментариев нет:
Отправить комментарий