Как заключить в кавычки/выйти идентификаторы, такие как имена столбцов с JDBC?

Различные серверы баз данных используют различные способы заключить в кавычки и выйти из идентификаторов.

Например, "панель нечто" по сравнению с 'панелью нечто' по сравнению с [панель нечто], или "10""" по сравнению с "10 \"", или идентификаторы, такие как FooBar или массив должна быть заключена в кавычки для некоторых баз данных, но не для других.

Есть ли какой-либо метод API, который выполняет заключение в кавычки/выход правильно на данное соединение с базой данных? Или какое-либо альтернативное решение?

8
задан aditsu 10 January 2010 в 19:04
поделиться

2 ответа

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

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

Отредактируйте: Если вы пишете ORM, то я бы подумал, что нужен отдельный класс генерации SQL для каждой поддерживаемой базы данных, просто для обработки различного вовлечения синтаксиса, поэтому вам придется написать это. Вы, безусловно, можете посмотреть исходный код различного ORM ORM с открытым исходным кодом, и посмотрите, как они это обрабатывают.

3
ответ дан 5 December 2019 в 10:03
поделиться

Взгляните на

DatabaseMetaData.getIdentifierQuoteString()

Я никогда не пользовался им, но звучит неплохо :-)

getExtraNameCharacters() также может быть полезен

.
14
ответ дан 5 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: