RH2:连接到数据库H2 R中(RH2: Connect to H2 Database in R)

2019-10-22 10:07发布

我试图用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

有谁知道如何解决这个还是我做的语法错误?

Answer 1:

相反,RH2,你可以直接使用RJDBC。 这将是相应的命令:

CON < - 数据库连接(JDBC( 'org.h2.Driver', '〜/ h2-1.4.181.jar'), 'JDBC:H 2:〜/测试', 'SA', '')

需要注意的是,在Windows中使用〜驱动程序路径给了我一个错误。 但是,如果我代替罐子位置字符串的绝对路径,如“:/h2-1-4.181.jar C”它的工作原理。 需要注意的是,虽然我得到了错误类似于你的,我不能说,这将有固定的RH2,因为我无法使用一些其他原因。

有关RJDBC详细信息请参阅: https://www.rforge.net/RJDBC/index.html



Answer 2:

我觉得jars的说法被打破。 我的猜测是,它不是预先悬而未决。

我通过一个更新的替换我的包库中的旧罐子H2固定它(在Mac OS X)。 特别:

 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

当您需要为您的操作系统,文件系统和更新H2罐子的位置进行适当的修改。

一旦你有了到位的新的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)

正如预期的那样。



文章来源: RH2: Connect to H2 Database in R
标签: r h2 rjdbc