0

以下のようにテーブルレコードを更新しようとすると、エラーが発生します

方法-1:

String jsonText = "{"id":100,"nickname":"yash","name":"Rahul"}"
Statement st3 = con.createStatement();
st3.executeUpdate("UPDATE comment SET c_wt ="+c_newwt+",c_Jsonwt ="+jsonText+" WHERE c_id="+c_id);

そして、私がこのようにそれをするとき、それは更新されます

方法-2:

Statement st3 = con.createStatement();
st3.executeUpdate("UPDATE comment SET c_wt ="+c_newwt+",c_Jsonwt ="+"'{"id":100,"nickname":"yash","name":"Rahul"}'"+" WHERE c_id="+c_id);   

方法1を使用してテーブルを更新する必要があります。誰かが私の問題を解決できますか?ありがとう。

4

3 に答える 3

1

SQLに「」を含むJSONが含まれていない場合は、以下を使用してください。また、JSONの "マークをエスケープし、文字列宣言にセミコロンを追加する必要があります

String jsonText = "{\"id\":100,\"nickname\":\"yash\",\"name\":\"Rahul\"}";
Statement st3 = con.createStatement();
st3.executeUpdate("UPDATE comment SET c_wt ="+c_newwt+",c_Jsonwt ='"+jsonText+"' WHERE c_id="+c_id);
于 2013-03-27T13:45:53.913 に答える
1

いくつかの欠落している引用符があります:'"+jsonText+"'

st3.executeUpdate("UPDATE comment SET c_wt ="+c_newwt+",c_Jsonwt ='"+jsonText+"' WHERE c_id="+c_id);
于 2013-03-27T13:46:17.600 に答える
0

私は次のようなものを提案します

String jsonText = "{\"id\":100,\"nickname\":\"yash\",\"name\":\"Rahul\"}";
Statement st3 = con.createStatement();
st3.executeUpdate("UPDATE comment SET c_wt ="+c_newwt+",c_Jsonwt =\""+jsonText+"\" WHERE c_id="+c_id);

多くの引用符をエスケープする必要があるようです。

于 2013-03-27T13:48:18.847 に答える