1. Java / Говнокод #1516

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    StringBuffer sql = new StringBuffer();
            sql.append("INSERT INTO ");
            sql.append("    APPLIED_TABLE ");
            sql.append(" ( ");
            sql.append("    PROJECT_ID, ");
            sql.append("    APPLIED_ID, ");
            sql.append("    APPLIED_DAY, ");
            sql.append("    USER_ID, ");
            sql.append("    APPLIED_NAME, ");
            sql.append("    APPLIED_LIMIT, ");
            sql.append("    APPLIED_COMMENT, ");
            sql.append("    CATEGORY_ID, ");
            sql.append("    DB_ID, ");
            sql.append("    EXCEL_ID, ");
            sql.append("    UPDATE_DATE, ");
            sql.append("    UPDATE_NAME ");
            sql.append(" ) VALUES ( ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    SYSDATE, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    SYSDATE, ");
            sql.append("    ? ");
            sql.append(" ) ");

    Китайцы составляют SQL запрос. Обратите внимание, что буфер склеиваетсо токо из литералов. Что мешало им написать просто строку с содержимым объединяющим енто все, остается загадкой.

    Запостил: cheap_chinese, 11 Августа 2009

    Комментарии (13) RSS

    • построчная оплата труда?:)
      Ответить
    • Да блин обычный копипаст из какого-нить SQL редактора в какую-нить идею с сохранением форматирования
      Ответить
      • Идея при вставке нормальный строковый литерал с переводами строк производит, а не такой ужос. Но ошибка типическая, да.
        Ответить
    • А по мне это дело вкуса.
      Ответить
      • Да, конечно. Либо компилим, либо постим в говнокод — кому как больше нравится.
        Ответить
    • Зато не надо мучиться скопипейстил из SQL редактора и зареплейсил начало строки на sql.append(" и конец строки на "); Обратное преобразование из кода в SQL также легко. В случае строкового литерала придется дополнительные движения совершать.
      Ответить
      • А ведь и правдо, надорваться же можно:)
        Ответить
      • Начало на " и конец на " +
        Ответить
      • не совсем понятно что зато?

        скопипейстил из SQL редактора и зареплейсил начало строки на sql.append(" и конец строки на ");

        и чего у вас получиться? херня получиться, то что наговнокожено жутко неудобная хреновина


        какие движения совершать придецо в случае строкового литерала не подскажете?
        Ответить
        • Да, нужно ведь ещё " на \" заменить, а \ - на \\
          Ответить
    • > Что мешало им написать просто строку с содержимым объединяющим енто все, остается загадкой.

      Глядя на это выражение понимаешь его смысл за 2 секунды, при этом ты можешь оценить правильность написанного, например сопоставить количество колонок и значаний. Если бы это одной строкой, то пришлось бы напрягаться и рытся в ней для этого не меньше минуты.

      Если перформанс не критичен, то читаемость важнее перформанса.
      Ответить
    • PreparedStatement же =)
      Ответить

    Добавить комментарий