个人数据库连接软件包



我已经创建了一个软件包,以简化我在R中开始一个新项目时建立数据库连接的过程将我以前做过的事情中的文件进行复制,然后将SQL驱动程序复制到新的项目文件夹中。理想情况下,我想通过以下代码启动一个新项目:

library(MyConnections)
conn <- MyConnections::get_conn()

我有一个适用于数据库连接的软件包函数,不需要我读取驱动程序文件。

get_mysql_conn <- function(){
  require(RMySQL)
  dbConnect(MySQL(),
            user = 'user',
            password = "password",
            dbname = 'dbname',
            host= 'host')
}

但是,我不知道如何按照我想要的方式工作。

get_mssql_conn <- function(){
  require(RJDBC)
  driver <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver", "./drivers/mssql-jdbc-7.0.0.jre8.jar")
  dbConnect(driver, "[connection string]",'[user]')
}

我假设必须有一种方法可以在软件包中创建驱动程序对象并在函数中使用它代替读取文件,但是我对自己的处理方式完全丢失了。任何帮助或指向正确方向的指向都将不胜感激。

您可以创建一个目录inst/drivers并在此处保存.jar文件,然后创建您的函数如下:

get_mssql_conn <- function(){
  driver <- RJDBC::JDBC(
    "com.microsoft.sqlserver.jdbc.SQLServerDriver", 
    system.file("drivers", "mssql-jdbc-7.0.0.jre8.jar", package = "MyConnections")
  )
  RJDBC::dbConnect(driver, "[connection string]",'[user]')
}

旁注:您应该在r软件包中使用requirelibrary,始终使用::,并在DESCRIPTION文件中的导入中列出软件包。

最新更新