Is there any way I can write (copy-paste) nicely-formatted SQL queries in Java string literals using Eclipse?

前端 未结 7 1493
情深已故
情深已故 2020-12-29 05:43

When I wish to use SQL queries in Java, I usually hold them in final String variables. Now, when the string is too large, it goes out of page breadth, and we either have to

相关标签:
7条回答
  • 2020-12-29 05:46

    This is quite close: how to paste your SQL indented with leading whitespace: https://stackoverflow.com/a/121513/1665128

    String sql =
        "SELECT\n" + 
        "  *\n" + 
        " FROM\n" + 
        "  something\n" + 
        " WHERE\n" + 
        "  id=4;";
    
    0 讨论(0)
  • 2020-12-29 05:54

    In Eclipse, in Window > Preferences under Java > Editor > Typing check the "Escape text when pasting into a string literal" checkbox.

    It will format the plain text:

    line1
    line2
    line3
    

    to:

    private final String TEXT = "line1\r\n" + 
                "line2\r\n" + 
                "line3";
    

    This is the output on Eclipse Helios. A similar question: Surround with quotation marks

    0 讨论(0)
  • 2020-12-29 05:54

    For DbVisualizer, you may use Ctrl + Alt + K to format your sql to desired pattern.

    0 讨论(0)
  • 2020-12-29 05:58

    Actually a really good question, I often wonder about that as well. One tip I can give you is using the following:

    //@formatter:off
        private static final String QUERY = 
        "SELECT t.* " +
          "FROM table t " +
         "WHERE t.age > 18";
    //@formatter:on
    

    It does not convert a SQL query into a Java String literal, but it keeps Eclipse from reformatting your String awkwardly unreadable.

    0 讨论(0)
  • 2020-12-29 06:03

    Here's a creative solution if you don't mind the extra whitespace in generated SQL output:

    Step 1: Paste

    enter image description here

    Paste your formatted SQL statement verbatim into your Java file

    Step 2: Write opening quotes

    enter image description here

    Notice the highlighted button, the sixth from the left. That's the awesome "Block Selection Mode" (Alt-Shift-A on Windows). It lets you write opening quotes on each selected line at the same position

    Step 3: Write closing quotes and concatenation

    enter image description here

    Apply the same technique for the closing quotes and the concatenation sign (+)

    Step 4: Fix the semi-colon

    enter image description here

    No comment needed here.

    0 讨论(0)
  • 2020-12-29 06:06

    I know that I'm late to this party, but for anyone using large queries, the block mode in Eclipse can be very difficult to work with, because it slows way down if you have a query with more than 100 lines or so (depending on your machine).

    I found this site and it is very simple and very fast. Post your code into a window, add a prefix (") and add a suffix (" +) and click save as. It will add the prefix and suffix to each line quite quickly.

    Here's the online tool:

    http://textmechanic.co/Add-Prefix-Suffix-to-Text.html

    0 讨论(0)
提交回复
热议问题