r - 像使用 odbc 一样连接 RJDBC
问题描述
我正在尝试使用 RJDBC 连接到我的 MS SQL 数据库,但我不知道要填写什么url
参数。使用 odbc 就足够了:
dbConnect(odbc::odbc(),
Driver = "SQL Server",
dsn = "MyDsn",
uid = "User",
pwd = "123456",
server = "myserver123456\\myserver1",
database = "MyDatabase")
当我将驱动程序从 odbc 交换到 jdbc 时,它会失败:
dbConnect(RJDBC::JDBC(classPath = "C:/jdbc/mssql-jdbc-7.0.0.jre8.jar"),
Driver = "SQL Server",
dsn = "MyDsn",
uid = "User",
pwd = "123456",
server = "myserver123456\\myserver1",
database = "MyDatabase")
错误:Error in .jcall("java/sql/DriverManager", "Ljava/sql/Connection;", "getConnection", :
argument "url" is missing, with no default
我应该在 url 参数中写什么?怎么认识?
解决方案
RJDBC 对该dbConnect
函数使用不同的参数:驱动程序定义和连接 URL(您缺少的部分)。例如(来自https://www.rforge.net/RJDBC/),要连接到 MySQL 数据库,您的代码将如下所示:
library(RJDBC) drv <- JDBC("com.mysql.jdbc.Driver", "/etc/jdbc/mysql-connector-java-3.1.14-bin.jar", identifier.quote="`") conn <- dbConnect(drv, "jdbc:mysql://localhost/test", "user", "pwd")
加载 MySQL 的 JDBC 驱动程序(根据需要调整驱动程序 JAR 文件的路径)并连接到本地数据库“test”。连接句柄 conn 用于所有后续操作。
对于 SQL Server,您的代码将如下所示(来自https://www.r-bloggers.com/connecting-to-sql-server-from-r-using-rjdbc/):
require(RJDBC) drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver", "C:/jdbc/mssql-jdbc-7.0.0.jre8.jar") conn <- dbConnect(drv, "jdbc:sqlserver://serverName", "userID", "password")
推荐阅读
- typescript - 如何设置 TypeScript、VScode、Yarn2、Fastify 项目
- c# - 为 Blazor 网站的每个页面使用多种解决方案
- python - 如何在csv中选择一个随机单元格
- excel - 具有变量名称的 Excel 结构化引用
- swift - 只有纵向模式不适用于 iPad / Xcode / SwiftUI
- java - 是否需要索引具有唯一约束的列?
- angular - *ngFor 中的角度翻译
- python - 将列表转换为字典的最快方法,列表值作为键,列表索引作为值
- laravel - Laravel 7 whereIn 查询只返回第一个索引
- r - 使用 df1 的两列中的值从 df2 中获取值,并将它们用作索引。与 Excel 中的 index(match(),match()) 方法相同