このメソッドを使用してJavaからデータベースのコンテンツを変更したい場合、1つの問題があります。
stmt.executeUpdate("UPDATE contentPage1 SET Content = REPLACE(Content,'"+oldContenido+"','"+newContenido+"');");
新しいテキストを入力したいので、内容を変更できません。このテキストには、`' のような文字が含まれています。古い内容は変更できません。私がやること?
PreparedStatementsを使用することもできます。パラメータをステートメントオブジェクトに追加すると、文字のエスケープ、型変換などを適切に処理できるようになります。
編集:Jesse Webは正しく、ソリューションの例を提供しています。彼の答えは受け入れられるべきです。
PreparedStatementsを使用すると、SQL でプレースホルダー文字 (?) を使用して、後で値を入力できます。また、エスケープも自動的に処理します...
PreparedStatement pstmt = con.prepareStatement("UPDATE contentPage1 SET Content = REPLACE(Content, ?, ?);");
pstmt.setString(1, "first");
pstmt.setString(2, "second - characters like ' will be escaped automatically!");
アップデート
以下のコメントでは、OP が実際に REPLACE SQL 関数を使用しようとしているのではなく、特定の列のデータを更新しようとしているように思えます。これを実現するためのサンプルコードを次に示します (@TedHopp のコメントを少し変更したバージョン)。
int messageId = 123; // use the PK or unique identifier of the record you want to update
PreparedStatement pstmt = con.prepareStatement("UPDATE contentPage1 SET Content = ? WHERE Id = ?;"); // 'Id' is whatever your PK column is
pstmt.setString(1, "my new message content");
pstmt.setInt(2, messageId);
int numRowsAffected = pstmt.executeUpdate();