如何处理用户输入的字符串中的撇号?

时间:2015-02-20 12:00:33

标签: java sql validation error-handling user-input

所以我正在创建一个程序,将GUI中的用户输入作为参数。如果用户输入带撇号的单词或句子,我该如何处理?

我正在使用它在数据库中输入内容,例如:

INSERT INTO users (firstname, lastname) VALUES ('"+firstNameString+"', '"+lastNameString+"')

如果用户的名字与John O'Neill相似,则会产生错误。 鉴于我无法控制用户可能输入的内容,我该如何处理该使徒?

2 个答案:

答案 0 :(得分:2)

为了避免这样的问题,请使用PreparedStatements。通常,您的代码看起来像这样:

....
PreparedStatement ps = null;
try {
ps = connection.prepareStatement("INSERT INTO users (firstname, lastname) VALUES (?,?)");
ps.setString(1,firstNameString);
ps.setString(2,lastNameString);
int result = ps.executeUpdate();
...

答案 1 :(得分:-1)

要添加转义序列,您可以在Oracle中使用',如果您想要转义',请添加'''

首先'是String的开头 第二个'在我们的案例中转义了第三个字符'