24

Java で SQL クエリを使用する場合、通常はそれらを最終的な文字列変数に保持します。さて、文字列が大きすぎると、ページの幅を超えてしまい、手動で分割する必要があります (Eclipse では、文字列の特定の場所に移動し、enter を配置し、結果の小さい文字列のそれぞれに対してそれを行います)。一部)、または Eclipse でフォーマッターを設定して、(たとえば) 1 行あたり 100 文字のみを許可することができます。しかし、文字列は論理的に壊れていません。

SQL Developer (たとえば) でクエリを適切にフォーマットできますが、それを Java に貼り付けると、すべての終了引用符と+記号を手動で設定して適切な Java 文字列にする必要があります。適切にフォーマットされた SQL クエリをコピーして Java ファイルに直接貼り付ける方法を知りたいだけです。私はエクリプスを使用しています。

おそらく、クエリが次のようにフォーマットされている場合:

SELECT
  *
 FROM
  something
 WHERE
  id=4;

次に、Java 文字列内に貼り付けると、次のようになります。

"SELECT" +
  " *" +
 " FROM" +
  " something" + 
 " WHERE";
  id=4;
4

8 に答える 8

19

生成された SQL 出力の余分な空白が気にならない場合の独創的な解決策を次に示します。

ステップ 1: 貼り付け

ここに画像の説明を入力

書式設定された SQL ステートメントをそのまま Java ファイルに貼り付けます

ステップ 2: 冒頭の引用文を書く

ここに画像の説明を入力

左から 6 番目の強調表示されたボタンに注目してください。それが素晴らしい「ブロック選択モード」 (Windows では Alt-Shift-A) です。選択した各行の同じ位置に開始引用符を書き込むことができます

ステップ 3: 閉じ引用符と連結を書く

ここに画像の説明を入力

閉じ引用符と連結記号 ( +)にも同じ手法を適用します。

ステップ 4: セミコロンを修正する

ここに画像の説明を入力

ここにコメントは不要です。

于 2013-10-12T12:46:30.947 に答える
14

Eclipse の [ウィンドウ] > [Java の環境設定] > [エディタ] > [入力] で、[文字列リテラルに貼り付けるときにテキストをエスケープする] チェックボックスをオンにします。

プレーンテキストをフォーマットします:

line1
line2
line3

に:

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

これは、Eclipse Helios での出力です。類似の質問:引用符で囲みます

于 2012-10-18T07:43:27.980 に答える
6

にいる場合はSQLDeveloper、クエリを選択し、 を使用Ctrl + F7して書式を設定します。もう一度選択し、 を使用Ctrl + Shift + F7してフォーマットを進めClipboard、出力先、出力タイプを目的のタイプとして選択し、 をクリックしますApply。これを Eclipse エディターに貼り付けて、違いを確認してください。

SQLDeveloper のバージョン 3.1.07 を使用しています。

于 2012-10-18T07:09:10.013 に答える
4

実はとても良い質問です。私もよく疑問に思います。私があなたに与えることができる1つのヒントは、次の使用です。

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

SQL クエリを Java 文字列リテラルに変換するわけではありませんが、Eclipse が文字列を不自然に判読できないように再フォーマットすることはありません。

于 2012-10-18T08:00:24.090 に答える
2

私はこのパーティーに遅れていることを知っていますが、大規模なクエリを使用している人にとって、Eclipse のブロック モードは非常に扱いにくい場合があります。あなたのマシン上で)。

このサイトを見つけましたが、とてもシンプルでとても速いです。コードをウィンドウに投稿し、プレフィックス (") とサフィックス (" +) を追加して、[名前を付けて保存] をクリックします。各行にプレフィックスとサフィックスを非常に迅速に追加します。

オンライン ツールは次のとおりです。

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

于 2014-04-28T16:59:12.387 に答える
1

の場合、 SQLを目的のパターンにフォーマットするためにDbVisualizer使用できます。Ctrl + Alt + K

于 2012-10-18T07:47:09.917 に答える
1

これは非常に近いです: SQL を先頭の空白でインデントして貼り付ける方法: https://stackoverflow.com/a/121513/1665128

String sql =
    "SELECT\n" + 
    "  *\n" + 
    " FROM\n" + 
    "  something\n" + 
    " WHERE\n" + 
    "  id=4;";
于 2012-10-18T09:09:16.050 に答える