java - 取消 SQL 字符串引号的方法

标签 java sql hibernate

我必须处理一些作为带引号的 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/

相关文章:

java - IntelliJ 运行自己的 processResources gradle 任务解释

java - Base64 错误 : The image contents is not valid base64 data java

java - 一个对象(java bean)作为 iReport(JasperReports)上的数据源

java - 使用@Async调用方法与在新线程中调用方法

java - 如何使用hibernate在mysql中对 double 类型变量使用like子句

mysql - SQL卡在简单的左连接上

sql - 我可以计算 SQL Server 中两个日期之间有多少个周末天数吗?

sql - 在 SQL 中连接 2 个表并根据匹配创建一个标志列

java - 多对多关系的jpa标准

java - 如何解决org.hibernate.NonUniqueObjectException : a different object with the same identifier value was already associated with the session: