【问题标题】:Issue in JDBC and SQL Server connectivityJDBC 和 SQL Server 连接问题
【发布时间】:2012-12-16 17:01:49
【问题描述】:

我对 Java 很陌生(我是一个纯粹的 .net 人)。我正在尝试进行 SQL Server 2008 数据库连接。现在我正在使用“jTDS”驱动程序来完成我的工作。

db.dbConnect("jdbc:jtds:sqlserver://XXXXXXX\XXXXXXXX/MyDB","用户名","密码");

我在连接中做错了什么?我收到以下错误

我知道这可能是一个很容易解决的问题。 提前致谢

【问题讨论】:

  • IIS08TOPSDEVDB1\\IIS08TOPSDEVDB1 这是什么?您应该为 sql server config 提供主机名和端口号。默认情况下,sql 端口是 1433 .@priyanka sarkar
  • @ATR 也可以指定实例名而不是端口号;默认情况下,SQL Server 甚至使用随机端口而不是 1433。
  • 是的,显然同意专家:) 作为新手,我建议使用端口,可能我错了 :) @Mark Rotteveel

标签: java


【解决方案1】:

您将Microsoft SQL Server JDBC driver URL 格式与the jTDS driver 的格式混淆了。

jTDS 的格式为:

jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]

在您的具体示例中,数据库的正确 URL 是:

jdbc:jtds:sqlserver://IIS08TOPSDEVDB1/SmbCommission;instance=IIS08TOPSDEVDB1

现在,当您使用实例名称进行连接时,您需要确保 SQL Server Browser 服务正在运行,并且该实例已配置为接受 TCP/IP 连接。如果您不(想要)使用 SQL Server Browser 服务,请确保将实例配置为固定端口并指定该端口而不是实例:

jdbc:jtds:sqlserver://IIS08TOPSDEVDB1:<the-port>/SmbCommission

另一种选择是使用 Microsoft SQL Server JDBC 驱动程序,其格式如下:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

使用该格式,正确的 URL 应该是:

jdbc:sqlserver://IIS08TOPSDEVDB1\IIS08TOPSDEVDB1;databaseName=SmbCommission

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-04
    • 2019-03-13
    • 1970-01-01
    • 2013-04-13
    • 2017-10-17
    • 2014-12-01
    • 2014-10-21
    • 2010-11-19
    相关资源
    最近更新 更多