我找到了一篇2008年的文章,讨论如何从MySQL中调用Java代码。由于该过程涉及与MySQL的实验性分支一起工作,因此有很多警告和免责声明。
对于我想做的项目来说,能够在MySQL中访问Java库将非常有用,类似于Oracle的Java存储过程。现在这种功能是否作为MySQL的标准功能存在?如果没有,哪些开源RDBMS支持类似于Oracle的Java存储过程?
我找到了一篇2008年的文章,讨论如何从MySQL中调用Java代码。由于该过程涉及与MySQL的实验性分支一起工作,因此有很多警告和免责声明。
对于我想做的项目来说,能够在MySQL中访问Java库将非常有用,类似于Oracle的Java存储过程。现在这种功能是否作为MySQL的标准功能存在?如果没有,哪些开源RDBMS支持类似于Oracle的Java存储过程?
我完全同意Bill的观点,但我可以想象业务规则被存储(而不是处理)在数据库中。我在这里考虑的是drools。引擎将在应用程序中,但规则可以在数据库中具有管理前端。
这样的东西对于不仅参数变化,而且公式也可能会变化的情况非常有趣。
根据您目前提供的有限信息,很难给出好的建议。然而:
... 这个例子涉及基于图形的数据类型(化学结构),无法使用内置的MySQL函数匹配查询。Java库将把查询和文本字段的内容转换为可匹配的内存对象。将此逻辑保留在数据库层中,例如,可以使连接保持在数据库中,这似乎是它们所属的地方。至少这是想法。
我不认为我会在MySQL中使用数据库端的Java来解决这个问题。相反,我会考虑以下选项:
使用对象关系映射(例如使用Hibernate)如JDO或JPA来处理基于图形的数据模型与数据库提供的映射。您不一定要使用RDBMS作为后端,但这可能是开始的最佳地点...除非您已经发现这是性能问题。
再次查看数据模型和数据访问模式。查看是否可以找到某些转换,允许您的应用程序的主要查询作为(有效的)表连接实现,而无需诉诸服务器端应用程序逻辑。
如果您确实需要使用服务器端应用程序逻辑(出于性能原因!),请使用RDBMS支持的机制。例如,在Oracle中,您将使用PL / SQL,在PostgreSQL中,您有多种选择。准备好切换到更适合您的应用程序要求的不同RDBMS。
我(个人)会避免依赖于某些数据库的试验分支:
考虑一下如果实验分支没有合并回主分支会发生什么。你将被困在依赖于不受支持并可能停止维护的分支的代码库中。
使用目前不受支持的RDBMS分支将妨碍其他想使用您软件的人。
现在显然,如果您软件的长期可行性不是首要问题,您可以选择忽略这些建议。但这可能对某些人很重要;例如,您的研究导师。