使用Java更新Mysql表行

时间:2013-03-27 13:43:41

标签: java mysql jdbc

当我尝试更新下面的表记录时,我收到错误

方法 - 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更新表格。任何人都可以解决我的问题吗?感谢。

3 个答案:

答案 0 :(得分:1)

您在SQL中没有包含带有“”的JSON,请使用以下内容。您还需要转义“JSON中的标记并在String声明中添加分号

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);

答案 1 :(得分:1)

有一些缺失的引号:'"+jsonText+"'

st3.executeUpdate("UPDATE comment SET c_wt ="+c_newwt+",c_Jsonwt ='"+jsonText+"' WHERE c_id="+c_id);

答案 2 :(得分: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);

看起来很多引号都需要转义。