我必须处理一些作为带引号的SQL字符串传入的参数,然后再引用它。我想知道Hibernate或JDBC中是否有任何实用程序或某些可以执行不引用位的常见Java库?
(否则我想我可以做str.replace("''","'")
。这是正确的吗?)
编辑:
只是一些背景知识。我正在尝试为Hibernate添加功能。我重写的Hibernate类将其参数作为带引号的字符串接收。我没有访问为bind变量提交的原始参数(没有重写许多Hibernate类)。
答案 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()`