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

笑着哭i 提交于 2019-11-28 12:48:21

问题


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


回答1:


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!




回答2:


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

;




回答3:


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!