symon symon - 5 months ago 25
Java Question

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

Answer

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!