繁体   English   中英

使用JRuby和Microsoft JDBC Driver 4.0连接到SQL Server实例时出错

[英]Error connecting to SQL Server instance using JRuby and Microsoft JDBC Driver 4.0

我正在尝试使用JRuby 1.9.3和MS JDBC Driver 4.0连接到SQL Server 2012数据库。 从JRuby IRB控制台输入以下内容:

require "sqljdbc4.jar"
Java::com.microsoft.sqlserver.jdbc.SQLServerDriver
url = "jdbc:sqlserver://ipaddress;databaseName=databasename"
c = java.sql.DriverManager.get_connection(url, "username", "password")

直到最后一行我似乎收到“ Java:JavaSql :: SqlException:找不到适用于jdbc:sqlserver:// ipaddress; databaseName = databasename的驱动程序”错误为止,它似乎工作正常。

我知道IP地址,数据库名称,用户名和密码是正确的,因为我可以从同一台计算机通过SQL Server Management Studio连接而不会出现问题。

我想念什么?

编辑:在带有SQL Server 2012的Windows Server 2008和带有SQL Server 2008 Express的Windows 7上进行了尝试,结果相同。

我与JRuby 1.9.3和MS JDBC Driver 4.0发生了相同的问题,并像这样解决了它:

driver = Java::com.microsoft.sqlserver.jdbc.SQLServerDriver.new
props = java.util.Properties.new
props.setProperty("user", "username")
props.setProperty("password", "password")
url = 'jdbc:sqlserver://servername;instanceName=instance;databaseName=DbName;'
conn = driver.connect(url, props)

在页面底部找到: https : //github.com/jruby/jruby/wiki/JDBC

看来我的设置在动态加载驱动程序方面存在问题,因此需要这种更明确的方法。

听起来您好像没有在JRuby寻找的正确位置加载JDBC驱动程序。 默认情况下,require出现在C:\\ jruby-1.7.10 \\ lib \\

另外,您可能需要将jar文件所在的文件夹添加到类路径。

require 'java'
$CLASSPATH << "your/folder"

我的完整测试脚本如下所示:

$CLASSPATH << "c:/jruby-1.7.10/lib/"
require "sqljdbc4.jar"

Java::com.microsoft.sqlserver.jdbc.SQLServerDriver
url = 'jdbc:sqlserver://127.0.0.1\\SQL2012:1433;databaseName=TestAllTheThings'
conn = java.sql.DriverManager.get_connection(url, "sa", "sapassword")
statement = conn.create_statement

q = "SELECT * FROM Input"
rs = statement.execute_query(q)

while (rs.next) do
  puts rs.getObject('Id')
end

statement.close
conn.close

TestAllTheThings是我的数据库名称,Input是该数据库中的一个表,Id是该表中的一列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM