Java 方法来解压缩SQL字符串

Java 方法来解压缩SQL字符串,java,sql,hibernate,Java,Sql,Hibernate,我必须处理一些作为带引号的SQL字符串传入的参数,然后再次引用它。我想知道在Hibernate、JDBC或一些常见的Java库中是否有任何实用程序可以执行取消引号的操作 (否则我想我可以做str.replace(“”,“””)。这正确吗?) 编辑: 只是一些背景。我正在尝试向Hibernate添加功能。我覆盖的Hibernate类将其参数作为带引号的字符串接收。我无法访问为bind变量提交的原始参数(没有重写许多Hibernate类)。只是不要引用字符串对象 您的设计存在问题,您不应该收到已经报

我必须处理一些作为带引号的SQL字符串传入的参数,然后再次引用它。我想知道在Hibernate、JDBC或一些常见的Java库中是否有任何实用程序可以执行取消引号的操作

(否则我想我可以做
str.replace(“”,“””)
。这正确吗?)

编辑:


只是一些背景。我正在尝试向Hibernate添加功能。我覆盖的Hibernate类将其参数作为带引号的字符串接收。我无法访问为bind变量提交的原始参数(没有重写许多Hibernate类)。

只是不要引用
字符串
对象

您的设计存在问题,您不应该收到已经报价的设计,如果在任何情况下您需要报价(避免),请在使用之前进行报价

对于JDBC端,您始终可以执行以下操作,因此不需要SQL引号字符串:

String query ="select myColumn from MyTable where fullname = ?";
PreparedStatement stm = c.prepareStatement(query);
stm.setString(1, "Garis M. Suero");
以一种简单的方式设计软件是一种非常好的做法,这样可以在开发人员编写软件时减少将来的混乱和错误


例如,如果您从第三方软件接收到此信息,您可以创建一个对象,该对象将获取字符串并将其转换为正确的值,并且可能有两个方法,一个是“getValue()
,另一个是:
getQuotedValue()`

否。您不能这样做。如果字符串是“select from eople where firstname='bob'”,那该怎么办?嗯,这听起来真像是设计问题。字符串不应该被SQL引用,当然也不应该将它们传递给另一个方法。是的。这将适用于取消引用。你为什么不自己尝试一下呢?@radai很抱歉说不清楚,但参数只是字符串,而不是整个查询。手术后,我会再次使用它。@我正在尝试扩展一个外部包。如果有更好的方法,我不会这样做。@Rachcha你知道的都是SQL注入的东西。我得知道没有别的案子了。