2016-09-13 4 views
0

У меня есть несколько серверных баз данных sql sql x1, x2, x3, ... xn, эффективно все тот же тип схемы и одна база данных y, которая отличается и содержит данные управления.Тот же подготовленный оператор, несколько баз данных, та же схема

Я использую подготовленные команды jdbc, и есть случаи, когда один и тот же подготовленный оператор должен выполняться в нескольких х-базах данных из одной программы.

Если SQL подготовленный оператор не указывает на базу данных:

ли подготовленный оператор, связанный только с сервером, и если выполняется выполняется на базе выбранного в зависимости от контекста, например после заявления USE.

Или это всегда связано с базой данных по умолчанию в URL-адресе подключения? Если это так, и я все еще хочу использовать preprepared statements, я должен создать подготовленный оператор для каждой отдельной базы данных, даже если схемы и операторы принципиально идентичны.

ответ

0

Я уверен (но не на 100% положительный), что подготовленный оператор привязан к конкретной базе данных. Учитывая, что план запроса должен оценивать статистику индекса и таблицы, которая будет различаться в каждой базе данных.

И поскольку это, кажется, внутренняя система, и SQL-инъекция не может быть проблемой - я бы использовал прямой execute или stmt.executeQuery (query).

Смежные вопросы