单引号的SQL更新查询

时间:2012-11-28 06:12:09

标签: java sql

我在java中使用hibernate应用程序来检索和更新数据库。

在更新表时,我按如下方式形成sql查询,

String qry = "UPDATE " + entity  + " SET " + htmlColumn + " ='"+value+"' WHERE " + id + " = " + primaryId;

其中value是一个html字符串,有时包含单引号。

如何转义忽略/转义单引号并成功更新表

由于

4 个答案:

答案 0 :(得分:3)

将<{1}}用于此

PreparedStatement

答案 1 :(得分:1)

不要直接设置值。

currentSession()
    .createQuery("UPDATE " + entity  + " SET " + htmlColumn +
              " = :value WHERE " + id + " :id")
    .setParameter("value", value).setParameter(":id",id).executeUpdate();

答案 2 :(得分:0)

您可以使用双引号替换单引号。 value.replace("'","''");但是您需要满足的不仅仅是因为如果没有正确适应,您的值很容易允许SQL注入。

答案 3 :(得分:0)

您可以将preparedstatement用作:

String query= "UPDATE " + entity  + " SET " + htmlColumn + " =? WHERE " + id + " = " + primaryId;

PreparedStatement ptmt = con.prepareStatement(query);
ptmt.setString(1, value);