2012-03-12 7 views
0

MYSQLを使用してJavaでファイルを作成する際に奇妙な問題に直面しています。ファイル名を作成中に一重引用符がJavaで2つの単一引用符に自動的に置換される

マイコード:

String lChildSql = this.lSQLBucket.select("get.child.by.name") 
         .replace("LEFT").with(lLeft) 
         .replace("RIGHT").with(lRight) 
         .replace("LEVEL").with(lLevel + 1) 
         .replace("NAME").with(pName).get() 
        ResultSet lChildRs = lDB.Qry(lChildSql); 

サンプル:私ははpNameのraj'sek'harとしてファイルを作成した場合、そのラジ "SEK" として作成されているが自動的にHAR。

この問題の解決にお役立てください。何を言っているか、ユーザー不明

よろしく、

ラジ

+0

使用しているコードをすべて投稿できますか? –

+0

二重引用符ではないことを確認できますか? SQLでは、アポストロフィをマスクするために、2つの単一引用符を使用することはよくありませんか? –

+0

こんにちは@user不明、はい、その二重引用符ではなく、二重引用符で置き換えられて...どのように私はこの問題を解決することができます – user27

答えて

1

が、これは正常な動作であるということです。それは単語の中に単一引用符(アポストロフィ)を持つSQLの処理方法です。

sqlは文字列に一重引用符を使用しますが、文字列に一重引用符が含まれていると文字列が "早く終わる"ため、'this isn't going to work'という問題が発生します。

だから、sqlは2つのアポストロフィを置き換えます。これは、実際には単一のアポストロフィが必要です:'this''ll work fine'です。

これは表示専用です。それは何かを「本当に」置き換えているわけではなく、データを取得するとすべてがうまくいくでしょう。

someone else saying the same thing

関連する問題