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 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;";