web-dev-qa-db-ja.com

Eclipseを使用してJava文字列リテラル)で適切にフォーマットされたSQLクエリを(コピーアンドペースト)書き込む方法はありますか?

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

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

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

SELECT
  *
 FROM
  something
 WHERE
  id=4;

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

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

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

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

line1
line2
line3

に:

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

これはEclipseHeliosでの出力です。同様の質問: 引用符で囲む

14
yiannis

生成されたSQL出力の​​余分な空白を気にしない場合の創造的な解決策は次のとおりです。

ステップ1:貼り付け

enter image description here

フォーマットされたSQLステートメントを逐語的にJavaファイルに貼り付けます

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

enter image description here

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

ステップ3:終了引用符と連結を書く

enter image description here

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

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

enter image description here

ここにコメントは必要ありません。

18
Lukas Eder

SQLDeveloperにいるときに、クエリを選択し、Ctrl + F7を使用してフォーマットします。もう一度選択し、Ctrl + Shift + F7を使用して高度なフォーマットを行い、出力先としてClipboardを選択し、必要なタイプとして出力タイプを選択して、Applyをクリックします。次に、Eclipseエディターに貼り付けて、違いを確認します。

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

6
James Jithin

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

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

SQLクエリをJava文字列リテラルに変換しませんが、Eclipseが文字列を不自然に読みにくく再フォーマットするのを防ぎます。

4
user1629683

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

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

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

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

2
thebbk

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

1
Drogba

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

String sql =
    "SELECT\n" + 
    "  *\n" + 
    " FROM\n" + 
    "  something\n" + 
    " WHERE\n" + 
    "  id=4;";
1
full.stack.ex