1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/JbootProjects-jboot

 / Детали:

Проблема с заменой фактических аргументов и заполнителей (? ) при печати SQL в Jboot

Предстоит сделать
Владелец
Создано  
04.03.2025
  1. Предварительные условия: При печати SQL запроса, jboot использует циклическую замену параметров для замены первого знака вопроса в SQL запросе. Исходный код представлен ниже:

    Исходное изображение

  2. Встречающаяся проблема: Когда значение параметра само содержит знак вопроса (например, в URL есть знак вопроса), это приводит к ошибке при замене. Например, мой SQL запрос и переданные параметры выглядят следующим образом:

    UPDATE T_PMC_HOT_EVENT SET URL = ?, NUM = ? WHERE TITLE = ?
    -- Переданные параметры: ["http://www.baidu.com?q=xxx&name==xx", OnClickListener.CLICK, "Это тестовый title"]
    

    Ожидаемый результат должен был быть таким:

    UPDATE T_PMC_HOT_EVENT SET URL = 'http://www.baidu.com?q=xxx&name==xx', NUM = OnClickListener.CLICK WHERE TITLE = 'Это тестовый title'
    

    Однако фактический результат отличается: он заменил знак вопроса в URL и привёл к неправильной замене последующих позиционных маркеров:

    UPDATE T_PMC_HOT_EVENT SET URL = 'http://www.baidu.comOnClickListener.CLICKq=xxx&name==xx', NUM = 'Это тестовый title' WHERE TITLE = ?
    

    На данный момент эта проблема затрагивает классы SqlDebugger и io.jboot.db.model.Util.

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/JbootProjects-jboot.git
git@api.gitlife.ru:oschina-mirror/JbootProjects-jboot.git
oschina-mirror
JbootProjects-jboot
JbootProjects-jboot