2011-11-05 88 views
0

我想在我的Java应用程序中使用R.我现在有一些可以从Java运行R的接口(我想我会使用JRI)。 RJDBC库允许R使用JDBC驱动程序连接到数据库。是否可以将java.sql.Connection从Java传递给R?

我想要做的就是将打开的连接从Java应用程序传递给R以备使用。

这可能吗?

编辑:我可以为R传递参数并从R中打开一个新连接。我可以用rJava从R访问Java对象。

点如果可以通过在Java中的java.sql.Connection对象到R转换R用来连接R连接对象中的连接用RJDBC访问数据库。

+6

传递连接几乎不是一个好主意。你不可以从R开一个新的吗? – aishwarya

+0

@aishwarya是的,我可以打开,但我想尝试使用我的Java应用程序中管理的连接池中的某些连接。 –

+1

连接就像2个系统之间的合同,如果你通过一个合同,它就没有意义:-)。你应该检查你是否可以在R中使用相同的连接池,如果它可以通过JNDI或其他方式使用。 – aishwarya

回答

1

所以我没有这样做......但我怀疑如果你真的想,有一种方法。如果您使用rJava从Java调用R(JRI样式),那么java对象实际上托管在JVM上,而不是R引擎。因此,连接对象及其所有资源实际上不会从Java移动到R,实际上R中的所有调用都将通过rJava转发给java,然后将响应发回。所以是的,这应该是可能的。它听起来像更多的工作,但它的价值。

3

这不是你正在寻找的答案:

如果您有需要传递角落找寻的连接,我假设你有某种建筑设计缺陷。而是保持连接在一个地方,并传递数据传输对象/ pojos。

+0

请看看我的编辑。 –

相关问题