1. # Обратите все входящие данные как строку и добавьте двойные кавычки к автоматически входящим данным. Например: Заказ от #user_id #, если значение, передаваемое, равно 111, то значение при анализе в SQL - это «111». Если проходящее значение IS ID, проанализированный в SQL - это «ID».
2. $ отображает переданные данные напрямую и генерирует их в SQL. Например: Заказ от $ user_id $, если пройденное значение IS 111, то значение при анализе в SQL - Order by user_id. Если проходящее значение IS ID, проанализированное в SQL является заказом по ID.
3. Метод # может значительно предотвратить инъекцию SQL.
4. Метод $ не может предотвратить инъекцию SQL.
5. Метод $ обычно используется для передачи в объектах базы данных, таких как передача имен таблиц.
6. Как правило, если вы можете использовать #, не используйте $.
При использовании порядка по динамическим параметрам при сортировке mybatis вам нужно обратить внимание на использование $ вместо #
Замена строки
По умолчанию, использование синтаксиса формата #{} заставляет Mybatis создать свойство предварительно обработанного оператора и установить безопасное значение с ним в качестве фона (например?). Это безопасно и быстро, и иногда вы просто хотите вставить строку, которая не изменяется непосредственно в оператор SQL. Например, например, заказ, вы можете использовать его таким: заказать $ {columnName}
Здесь Mybatis не будет изменять и не избежать строк.
ВАЖНО: Небезопасно принимать вывод контента от пользователя и предоставлять его неизменной строке в операторе. Это может привести к потенциальным атакам инъекций SQL, поэтому вы не должны позволять пользователям вводить эти поля или обычно избегать и проверять их самостоятельно.
Выше приведено краткое обсуждение разницы между # и $ в Mybatis. Я надеюсь, что каждый сможет поддержать wulin.com ~