![](/img/trans.png)
[英]Error connecting to Microsoft SQL Server in IBM IIB via JDBC
[英]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.