Java отправка string переменных по JDBC

207
04 июня 2017, 18:57

есть переменная

String ip = Getip.getip();

есть запрос на добавление данных в mysql

String[] insert = {"INSERT INTO users(ip) VALUES ( ip );"}; // 

но почему-то ip в запросе не распознается как переменная которую я указал выше. Эклипс предлагает ее удалить, т.к не используется не где. что не правильно тут?

Answer 1

Java не делает подстановки переменных в строке, для неё ip - это всего лишь две буквы строки. Желаемого вами можно добиться так:

String[] insert = {"INSERT INTO users(ip) VALUES ( " + ip + " );"};

Но лучше используйте Prepared Statements:

String insertQuery = "INSERT INTO users(ip) VALUES ( ? );"
dbConnection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
preparedStatement = dbConnection.prepareStatement(insertQuery);
preparedStatement.setString(1, ip);
preparedStatement.executeUpdate();

Это и проще, и убережёт от ошибок, а самое главное - это безопаснее, защитит от SQL injection.

READ ALSO
Отрисовка графика

Отрисовка графика

Есть график некоторой функции, этот график нужно вывести на экранЧем лучше всего воспользоваться?

274
Как закруглить углы кнопки и менять цвет при нажатии в android

Как закруглить углы кнопки и менять цвет при нажатии в android

У меня есть buttonxml и мне нужно в нем закруглить кнопку и одновременно с этим менять цвета при нажатии

414
Как отменить Exeption в equals?

Как отменить Exeption в equals?

Как отменить Exeption в equals?

239