The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск платформы Java SE 22 и открытой эталонной реализации OpenJDK 22, opennews (?), 20-Мрт-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


46. "Выпуск платформы Java SE 22 и открытой эталонной реализации ..."  +/
Сообщение от penetrator (?), 20-Мрт-24, 12:31 
> И в каком диалекте sql property у тебя может быть - параметром?
> И нет, не знают - это конкретные библиотеки должны знать.
> Да и зачем нужен этот костыль в современных ЯП чтобы собрать строку
> из частей - тоже неочевидно. От sql injections вопреки распространенным фантазиям
> - не защищает. Валидируйте юзерский инпут, блжд, а не надейтесь на
> костыли.

зачем мне в проперти, если нужен для value, а там все норм с параметрами

Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

48. "Выпуск платформы Java SE 22 и открытой эталонной реализации ..."  +/
Сообщение от нах. (?), 20-Мрт-24, 12:47 
потому что в приведенном примере - помимо value еще и имя поля - тоже переменная.

Если ты будешь в одном месте подставлять эту переменную, а в другом отдельном - переменную для value - еще и двумя разными способами - код разумеется станет в десять раз понятнее и удобочитаемей. Нет.

Параметрические sql-конструкции - это просто костылик, причем пришедший из pl/sql
Если его тебе реализует (для него это может быть бесплатно) апи конкретной субд - пользуйся на здоровье, а зачем в синтаксис универсального языка-то такое тащить?

Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск платформы Java SE 22 и открытой эталонной реализации ..."  +/
Сообщение от Аноним (53), 20-Мрт-24, 14:18 
> Если его тебе реализует (для него это может быть бесплатно) апи конкретной субд - пользуйся на здоровье, а зачем в синтаксис универсального языка-то такое тащить?

Пример иллюстрировал вообще-то интерполяцию строк, а не правильность построения SQL-запроса. Без SQL-специфичных слов интерполяция тоже работать будет. Чего ты на этом SQL зациклился, непонятно.

> Да и зачем нужен этот костыль в современных ЯП чтобы собрать строку из частей - тоже неочевидно

Если тебе неочевидно, для чего нужна интерполяция строк - тебе реально надо поднимать квалификацию.

Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск платформы Java SE 22 и открытой эталонной реализации ..."  +/
Сообщение от нах. (?), 20-Мрт-24, 14:26 
> Пример иллюстрировал вообще-то интерполяцию строк

я не знаю что такое "интерполяция строк", но второй вариант примера создает java.sql.Statement (и подозреваю еще и кинет exception при попытке запихать в качестве value '""\; truncate table;')

действительно, причем тут sql?

И я отвечал людям, удивленно спрашивавшим - зачем оно им надо когда в самом sql-коннекторе почти всех типичных баз - есть подстановка параметров при исполнении запроса (и туда такое подставить не получится, а если и да - то эту ошибку надо свалить на авторов коннектора).

Ответить | Правка | Наверх | Cообщить модератору

59. "Выпуск платформы Java SE 22 и открытой эталонной реализации ..."  +/
Сообщение от Аноним (53), 20-Мрт-24, 17:16 
> я не знаю что такое "интерполяция строк"

Ну, это то, что ты называешь "сборкой строки из частей".


> второй вариант примера создает java.sql.Statement

Нет, всё-таки java.lang.String. Пример всё-таки про то, что в Java 22 ввели новый метод интерполяции строк. В дополнении к уже имеющимся, но менее удобным, как, например, String.format(). А не про SQL. Хоть там в строке и есть SQL-специфичные слова.

Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск платформы Java SE 22 и открытой эталонной реализации ..."  +/
Сообщение от нах. (?), 20-Мрт-24, 17:50 
> Нет, всё-таки java.lang.String.

да, похоже новость переписали на ходу. Тогда неинтересно.

И нет, переписали снова неправильно - так как у них сейчас (заскринил, чтобы не переписывали потихому: Statement query = """SELECT * FROM Person p
       WHERE p.\{property} = '\{value}'"""; // стало
)
- я не знаю что тут написано. По ссылке должно было быть String guery = STR. далее по тексту. Что такое Statement и где он определен? В "было" именно String.
А та фигня вернет даже не java.lang.String, а какой-то неведомый java.lang.StringTemplate and String does not implement StringTemplate так что оно вообще не скомпилируется.

(то что тут было изначально - можно, но этот обработчик SQL тебе предлагается написать как-нибудь самому, а из готового только STR и RAW, как я понял)

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру