RH2:连接到R中的H2数据库



我试图用RH2连接到H2(1.4.181)数据库。我尝试过不同的方法,比如重新安装R,以及在Ubuntu上修复rJava的潜在问题。但是以下错误不会消失:

> library("RH2")
Loading required package: chron
Loading required package: RJDBC
Loading required package: DBI
Loading required package: rJava
> con <- dbConnect(H2(driverClass="org.h2.Driver", jars =    "~/h2-1.4.181.jar"), "jdbc:h2:~/test", "sa", "")
Error in is(object, Cl): error in evaluating the argument 'drv' in selecting a method for function   'dbConnect': Error in .jfindClass(as.character(driverClass)[1]) : class not found

有人知道如何解决这个问题吗?或者我在语法上犯了错误吗?

您可以直接使用RJDBC而不是RH2。这将是相应的命令:

con<-dbConnect(JDBC('org.h2.Driver','~/h2-1.4181.jar'),'JDBC:h2:~/test','sa','')

请注意,在Windows中,使用~作为驱动程序路径时出错。但是,如果我用jar位置字符串代替一个绝对路径,比如"C:\h2-1-4.181.jar",它是有效的。请注意,尽管我得到的错误与你的错误相似,但我不能说这会修复RH2,因为我由于其他原因无法使用它。

有关RJDBC的更多信息,请参阅:https://www.rforge.net/RJDBC/index.html

我认为jars参数已损坏。我的猜测是,它不是预先挂起的。

我修复了它(在Mac OS X上),用更新的包库替换了包库中的旧H2 jar。具体而言:

 box:java nmvanhoudnos$ pwd
 /Users/nmvanhoudnos/Library/R/3.2/library/RH2/java
 box:java nmvanhoudnos$ ls
 h2-1.3.175.jar
 box:java nmvanhoudnos$ mv h2-1.3.175.jar h2-1.3.175.old
 box:java nmvanhoudnos$ cp ~/workspace/defectprediction/h2*.jar .
 box:java nmvanhoudnos$ ls
 h2-1.3.175.old h2-1.4.184.jar

您需要对操作系统、文件系统和更新H2jar的位置进行适当的更改。

一旦你有了新的jar文件,你就可以测试它是否在R中工作,如下所示:

> library(RH2)
> con <- dbConnect(H2())
> s <- "select VALUE from INFORMATION_SCHEMA.SETTINGS where NAME = 'info.VERSION'"
> dbGetQuery(con, s)
                 VALUE
1 1.4.184 (2014-12-19)

正如预期的那样。

相关内容

  • 没有找到相关文章

最新更新