我在 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
一段时间,它运行良好,但当实例名称包含反斜杠时不知道正确的连接字符串。
我有一个类似的案例,我的 DBA 给了我一个服务器上的数据库,连接如下:{SERVER_NAME}\{INSTANCE}
. 该语法在使用 SSMS 连接到服务器和实例时有效,但在通过 Java 驱动程序连接时无效。
相反,以下语法对我有用:
jdbc:jtds:sqlserver://{SERVER_NAME};databaseName={DATABASE_NAME);instance={INSTANCE}
请注意,我必须将实例移动到连接字符串参数。一旦我这样做了,一切都很好。
如需参考,请参阅此特定 JTDS 常见问题解答。
-您的数据库将在“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;";