取消引用SQL字符串的方法

时间:2013-03-08 17:56:47

标签: java sql hibernate

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

(否则我想我可以做str.replace("''","'")。这是正确的吗?)

编辑:

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

1 个答案:

答案 0 :(得分:2)

不要引用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()`