代码之家  ›  专栏  ›  技术社区  ›  Silfverstrom

JDBC中的正则表达式

  •  1
  • Silfverstrom  · 技术社区  · 16 年前

    我有一个使用JDBC进行数据库交互的java应用程序。我想基于一系列正则表达式进行搜索,但是应用程序应该是通用的,我们不知道数据库引擎是否会使用mysql、oracle、sqlserver等,但我们非常确定它会是mysql还是oracle。

    正则表达式会将我的应用程序限制在特定的数据库中吗?或者我可以在不担心兼容性的情况下使用它们吗?

    3 回复  |  直到 16 年前
        1
  •  4
  •   sleske    16 年前

    好吧,使用正则表达式将限制您使用支持它们的DBMS:-)。也就是说,至少Oracle、MySQL、PostgreSQL和MS-SQL支持某种正则表达式,所以原则上应该没有问题。当然,您可能仍然会遇到兼容性问题。

    您最好的选择可能是将正则表达式的使用限制在应用程序的某些已定义部分,例如应用程序中生成SQL查询的几个存储过程或一个模块。

    无论如何,这都是一种很好的做法,并将使以后的更改成为可能。

        2
  •  3
  •   Matthew Flaschen    16 年前

    虽然理论上我相信两者 MySQL Oracle MySQL使用REGEXP,而Oracle使用REGEXP_LIKE,regular-expressions.info注意到Oracle实现的怪癖(MySQL可能也有类似的怪癖)。

    所以,你可能不能用这个。

        3
  •  1
  •   Steve McLeod    16 年前

    是的,使用正则表达式搜索等非标准SQL功能会将您的应用程序限制在特定的数据库中。

    就像slekse建议的那样,一个好的解决方案是将非标准SQL功能的使用限制在一个特定的模块中。然后,如果你更改了DBMS,你只需要更改该模块。

    推荐文章