我必须处理一些作为带引号的 SQL 字符串传入的参数,然后再次引用它。我想知道 Hibernate 或 JDBC 或一些常见的 Java 库中是否有任何实用程序可以执行取消引用的操作?
(否则我想我可以str.replace("''","'")
。这是正确的吗?)
编辑:
只是一些背景。我正在尝试向 Hibernate 添加功能。我重写的 Hibernate 类接收其参数作为带引号的字符串。我无法访问为绑定(bind)变量提交的原始参数(无需重写许多 Hibernate 类)。
最佳答案
只是不要引用 String
对象。
您的设计存在问题,您不应该收到已报价的报价,如果在任何情况下您需要报价(避免这种情况),请在使用它之前进行。
对于 JDBC 端,您始终可以执行以下操作,因此不需要 SQL 带引号的字符串:
String query ="select myColumn from MyTable where fullname = ?";
PreparedStatement stm = c.prepareStatement(query);
stm.setString(1, "Garis M. Suero");
以简单的方式设计软件是一种非常好的做法,可以减少开发人员在编写软件代码时出现的困惑和错误。
例如,如果您从第三方软件收到此信息,您可以创建一个对象,该对象将获取该字符串并将其转换为正确的值,并且可能有两种方法,一种是 'getValue() and another:
getQuotedValue()`
关于java - 取消 SQL 字符串引号的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15300295/