我正在Java应用程序中使用jTDS驱动程序。数据库管理员告诉我SQL Server实例名称为
MSSQL-DB09v1\v1
我该如何编写连接URL?
我一直在使用类似于
jdbc:jtds:sqlserver://server-name/database_name
已经使用了一段时间,效果不错,但是在实例名称包含反斜杠时不知道正确的连接字符串。
我正在Java应用程序中使用jTDS驱动程序。数据库管理员告诉我SQL Server实例名称为
MSSQL-DB09v1\v1
我该如何编写连接URL?
我一直在使用类似于
jdbc:jtds:sqlserver://server-name/database_name
已经使用了一段时间,效果不错,但是在实例名称包含反斜杠时不知道正确的连接字符串。
我曾遇到过一个类似的情况,我的数据库管理员在一台服务器上给我提供了一个带有以下连接的数据库:{SERVER_NAME}\{INSTANCE}
。当使用SSMS连接服务器和实例时,该语法有效,但是通过Java驱动程序连接时却无法工作。
相反,对我起作用的是以下语法:
jdbc:jtds:sqlserver://{SERVER_NAME};databaseName={DATABASE_NAME);instance={INSTANCE}
请注意,我必须将实例移到连接字符串参数中。这样做后,一切都运行良好。
有关参考,请参见特定的JTDS FAQ。
-你的数据库将运行在“dbo”模式下。
-因此,您需要确保建立连接以便以dbo模式处理查询。(当您使用getConnection()函数时)
-您可以通过在连接字符串中在服务器名称前添加数据库名称来实现这一点。如下所示:
ConnectionUrl="jdbc:jtds:sqlserver://**yourservername:1433/yourdatabase**;database=yourdatabse;user=username;password=password;encrypt=false;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";
替代
ConnectionUrl="jdbc:jtds:sqlserver://**yourservername:1433**;database=yourdatabse;user=username;password=password;encrypt=false;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";