由于我本机安装有2个Sqlserver 一个 2000 一个 2005 。因此在安装的时候没有选择默认实例名。而分别填的为 SQL2000和SQL2005
现在用JDBC连接出现问题。连接不上。而同样的程序在链接默认的实例名的SQL2000可以链上!
不知道有这方面经验的朋友可否告知如何写连接URL
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=ifax";注意上面的 //localhost:1433; 
在连接默认实例名的SQL2000 没有问题。现在我的SQL实例名为SQL2000如何修改URL我式过在.net里面 直接在 server=localhost/SQL2000 直接将实例名加在localhost后面就行了。但 sqlserver://localhost:1433/SQL2000 sqlserver://localhost/SQL2000:1433;
这样式过均不行!有知道的朋友麻烦告知!不慎感谢!

解决方案 »

  1.   

    没有  SQL2000 和2005 均为默认端口 2000的端口 1433 2005的端口 1434
      

  2.   

      问题是这样的,首先要明白jdbc的基本原理不是按照微软的实例名称连接方式进行数据连接的,而是走标准的tcp/ip协议,有兴趣的朋友可以自己去反编译jtds与sqlserver的jdbc驱动包。
      因此,无论默认的还是非默认的数据库实例的连接必须按照标准的jdbc格式去书写,才能连接数据库。格式就是:
    jdbc:microsoft:sqlserver://对应数据库非默认实例ip地址:对应数据库非默认实例占用端口;   DatabaseName=ifax 上述格式在jtds与微软的官方驱动上有局部的写法不同之处,但是在:“://对应数据库非默认实例ip地址:对应数据库非默认实例占用端口”的部分,格式都是一样的,必须遵守tcp/ip协议。上面的总结一下,就是说无论默认与非默认实例的实例名称,都绝对不能当作jdbc的参数来传递,tcp/ip协议不会按照微软的实例名称连接法进行连接。
      

  3.   

      问题是这样的,首先要明白jdbc的基本原理不是按照微软的实例名称连接方式进行数据连接的,而是走标准的tcp/ip协议,有兴趣的朋友可以自己去反编译jtds与sqlserver的jdbc驱动包。
      因此,无论默认的还是非默认的数据库实例的连接必须按照标准的jdbc格式去书写,才能连接数据库。格式就是:
    jdbc:microsoft:sqlserver://对应数据库非默认实例ip地址:对应数据库非默认实例占用端口;   DatabaseName=ifax 上述格式在jtds与微软的官方驱动上有局部的写法不同之处,但是在:“://对应数据库非默认实例ip地址:对应数据库非默认实例占用端口”的部分,格式都是一样的,必须遵守tcp/ip协议。上面的总结一下,就是说无论默认与非默认实例的实例名称,都绝对不能当作jdbc的参数来传递,tcp/ip协议不会按照微软的实例名称连接法进行连接。