Search code examples
javasql-serverjdbcjtds

Using JDBC when server name contains a backslash (localhost\TESTDATA)


thanks for taking the time to read this. I'm completely stumped by what is probably a simple thing. I am trying to make a connection to my SQL database, the following tends to work:

String url = "jdbc:jtds:sqlserver://10.0.100.200;DatabaseName=master;user=sa;password=";

However when my name contains a backslash, for example "localhost\TESTDATA I cannot seem to get it working, I am getting

"java.sql.SQLException: Unknown server host name 'localhost\TESTDATA'."

when I use the following:

String url = "jdbc:jtds:sqlserver://localhost\\TESTDATA;DatabaseName=master;user=sa;password=";

Thanks


Solution

  • The jtds driver does not have the same syntax as the ms driver. You should send the instance name as a property, i.e. like this:

    "jdbc:jtds:sqlserver://localhost/master;instance=TESTDATA;..."
    

    Also notice that the database name is sent as /master instead of as a property. Good luck!