Регулярные выражения в JDBC - PullRequest
1 голос
/ 27 мая 2009

У меня есть Java-приложение, использующее JDBC для взаимодействия с базой данных. Я хочу сделать поиск, основанный на серии регулярных выражений, однако приложение должно быть универсальным, мы не знаем, будет ли обработчик базы данных работать с mysql, oracle, sql server и т. Д., Но мы почти уверены, что это будет либо MySQL или оракул.

Ограничат ли регулярные выражения мое приложение определенной базой данных или я могу использовать их, не беспокоясь о совместимости?

Ответы [ 3 ]

4 голосов
/ 27 мая 2009

Что ж, использование регулярных выражений ограничит вас поддержкой СУБД :-). Тем не менее, по крайней мере Oracle, MySQL, PostgreSQL и MS-SQL поддерживают какое-то регулярное выражение, поэтому это не должно быть проблемой в принципе. Конечно, вы все еще можете столкнуться с проблемами совместимости.

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

В любом случае, это хорошая практика, и последующие изменения будут возможны.

3 голосов
/ 27 мая 2009

Хотя теоретически я полагаю, что и MySQL , и Oracle предназначены для поддержки POSIX ERE, MySQL использует REGEXP, где Oracle использует REGEXP_LIKE, а регулярно-expressions.info отмечает странности с реализацией Oracle (есть, вероятно, похожие для MySQL).

Итак, вы, вероятно, не можете использовать это.

1 голос
/ 27 мая 2009

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

Как и предполагал slekse, хорошее решение - ограничить использование нестандартных функций SQL одним конкретным модулем. Тогда вам нужно будет только изменить этот модуль, если вы измените СУБД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...