Java Sqlitte передача аргументов в запрос

199
16 сентября 2017, 23:08
public static void changeNumber(String name, String surname, String newNumber) {

Обьясните почему так не работает:

try {
    String query = "UPDATE applicants SET phone_number= "+newNumber+" " +
    "WHERE first_name= "+name+" ";

"SQL error or missing database (no such column: Joseph)"

A так работает:

try {
    String query = "UPDATE applicants SET phone_number= "+newNumber+" " +
    "WHERE first_name= 'Joseph' ";

Причем phone_number видит в обоих случаях

Answer 1

Дело в том, что в первом примере Вы подставляете строковое значение без одинарных кавычек. В результате в предложении WHERE СУБД воспринимает это значение, как имя столбца.

P.S. Вообще формировать SQL запрос методом конкатенации, это bad practice. Лучше используйте парматрические запросы. Это сразу избавит от очень многих проблем.

READ ALSO
вызов методов StackTraceElement Thread

вызов методов StackTraceElement Thread

Не могу никак разобраться в этом коде:

204
Не пойму синтаксис следующей строки

Не пойму синтаксис следующей строки

Есть некоторый метод, принимающий String value, который возвращает следующую строку, смысл которой мне не совсем понятен:

168
Cross-origin WebSocket request к Spring-приложению

Cross-origin WebSocket request к Spring-приложению

Делаю UI на ReactРазрабатываю это дело через create-react-app под встроенным сервером

159
Как запустить java telegram bot'a на openshift?

Как запустить java telegram bot'a на openshift?

В общем, создал бота на java, maven работает, все окНо при попытке deploy'a толку нет

262