2017-12-04 13 views
0

ハードコードされたエラーログをすべてDBに移動する必要があります。エラーログのいくつかは、テーブルの構造を変更することはできませんJava文字列内のプレースホルダを文字列変数に置き換える機能はありますか

"xxxxx" + variable + "xxxxxx"; 

形式で提供されます。また、DB内の値は常に変更できるので、位置に基づいてString insertを行うこともできません。

文字列値にプレースホルダを設定でき、変数に置き換えられるJavaライブラリやサードパーティのライブラリには、機能がありますか? は例を引用すると、私たちは古き良き

printf("bla %s %d bla,", var, var2); 

またはSQL PreparedStatementクラス

stmt("select * from blah where a = ?"); 

の考えることができます '?'可変コンテンツに置き換えられます。

ご意見があれば助かります。

+1

'java.text.MessageFormat'、' java.util.Formatter探しているString.format()を持っています'、あなたの選択を取る。次回は、ここで質問する前にいくつかの調査をしてください。 –

+1

準備された文(ほとんどのドライバでは少なくとも)では、パラメータプレースホルダは値に置き換えられません。それらは依然として別々にデータベースサーバーに送信されます。 –

+0

ジムありがとうございます。これはまさに私が探していたものです。私はここにそれを掲示する前に研究をしていた。適切なキーワードを使用しなかったと思います。 – NixRam

答えて

2

JDK 7+は、私は私が何を考えてあなたが

2

あなたはこのようMessageFormatを使用することができます。

String log = "xxxxx [{0}] xxxxxx"; 
String variable = "some_string"; 
String result = MessageFormat.format(log, variable); 
+1

または多分String.format – TruckDriver

+0

ありがとう@ティモシーはいこれは正しいです。あなたは '[{0}]の代わりに'%s'を使う必要があります –

関連する問題