2015-02-20 3 views
1

Так что я делаю программу, которая вводит пользовательский ввод из графического интерфейса в качестве параметра. Как мне обрабатывать его, если пользователь вводит слово или предложение с апострофом?Как обращаться с апостофами в введенной пользователем строкой?

Я использую его для ввода что-то в базу данных, так, например:

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

Если имя пользователя было что-то, как Джон О'Нил, это будет сгенерировано сообщение об ошибке. Как обрабатывать этот апостроф, учитывая, что я не могу контролировать, что могут вводить пользователи?

+6

Используйте подготовленный оператор. – Jens

+0

использовать подготовленные заявления – MihaiC

+0

использовать подготовленные заявления - http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html – ashosborne1

ответ

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(); 
... 
+0

Хорошо, и это будет просто обрабатывать любые апострофы, которые могут быть в введенном тексте? – Lauripops

+0

Он справится с этим для вас, да. –

+0

Спасибо, это именно то, что мне так нужно! Очень признателен :) – Lauripops

-1

Для добавления последовательности символов вы можете использовать ' в Oracle, если вы хотите, чтобы избежать ' затем добавить '''

Первый ' является запуск струнного Второй ' ускользает третий символ в нашем случае это '

+0

Хотя технически правильно, этот подход - плохая идея. Параметры запроса - лучший подход. Следовательно, нисходящий. –

+0

Да, я согласен, но я просто хотел сказать, что можно избежать символа '' ' – Saravana

Смежные вопросы