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
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!
You need to specify the port number, just giving the server name won't work. So it should be like
String url = "jdbc:jtds:sqlserver://localhost:<portnumber>/TESTDATA;DatabaseName=master;user=sa;password="
;
There's no such thing as a backslash in a host name. You need to do ping hostname
from a command prompt, and whatever you use for hostname goes in the URL for JDBC.
You can also use the IP address, but if you can ping by the hostname it will work.
See here: http://www.wikihow.com/Ping-an-IP-Address
Figure out the right host name first.
来源:https://stackoverflow.com/questions/37766908/using-jdbc-when-server-name-contains-a-backslash-localhost-testdata