站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题jdbc连接sql2000(TCP/IP连接失败)的错误

jdbc连接sql2000(TCP/IP连接失败)的错误

摘要: jdbc连接sql2000(TCP/IP连接失败)的错误


请大家帮忙解答,俺用JAVA程序直接连接.
sql2000打了SP4补丁,并且查看端口,发现1433端口已经开启监听.所有防火墙关了.
用SQL企业管理器和查询分析器都可以正常连接.SQL添加了命名管道和TCP协议.

连接时显示的错误异常:

类实例化成功!
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 ja
va.net.ConnectException: Connection refused: connect
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(U
nknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Sour
ce)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at Test.main(Test.java:16)



连接使用的JAVA代码:
import java.sql.*;
class Test
{
public static void main(String args[])
{
String url="jdbc:sqlserver://localhost:1433;DatabaseName=pubs";
String user="sa";
String password="yinguochao";
String sqlStr="select * from jobs";

try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("类实例化成功!");

Connection con=DriverManager.getConnection(url,user,password);
System.out.println("创建连接对象成功!");

Statement st=con.createStatement();
System.out.println("创建Statement成功!");

ResultSet rs=st.executeQuery(sqlStr);
System.out.println("操作数据库成功!");
System.out.println("`````````````````````````````````````````````````");

while(rs.next())
{
System.out.print(rs.getString("job_id")+" ");
System.out.print(rs.getString("job_desc")+" ");
System.out.print(rs.getString("min_lvl")+" ");
System.out.print(rs.getString("max_lvl"));
System.out.println();
}
rs.close();
st.close();
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}


请大家帮忙分析一下原因.


补充:
俺们已经在SQL属性中选了混合登陆模式.



String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";

再确认:
msbase.jar
mssqlserver.jar
msutil.jar
上面三个类放在工程下,或classpath里面。


LZ用的是2005的驱动?


是的, sqljdbc_1.0.809.102_chs.exe, Microsoft SQL Server 2005 JDBC
SQL是SQL server 2000


是不是不兼容?
难道Microsoft SQL Server 2005 JDBC 只支持 SQL2005 吗?

我觉得应该也兼容sql 2000 吧?


我说的驱动包都是2000的.



开发大忌,程序之间版本不兼容。


我用的JDBC是很新的,没有msbase.jar mssqlserver.jar msutil.jar
有的是否 sqljdbc.jar
我已经把它放到Tamoca5 的lib下面,并加入了classPath.



新的JDBC应该向后兼容吧?
那我去找个旧的试试看


不是JDBC的问题吧?
我在微软下载页看到:
Microsoft 一直致力于改进互操作性,最近发布了新的使用 SQL Server 2005 的 Java Database Connectivity (JDBC) 驱动程序。SQL Server 2005 JDBC Driver 下载免费提供给所有 SQL Server 用户,它提供从任何 Java 应用程序、应用程序服务器或支持 Java 的小程序中访问 SQL Server 2000 和 SQL Server 2005 的能力


String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
上面的话你改了吗?


改的话也不行,2005版的JDBC是没有"microsoft"的.
2000版的才要加;


我想确定一下,我的SQL实例名称是中文的,也就是SQL服务器是中文命名的,会不会是这个原因?

我不知道怎么把它改为字母,谁可以告诉我?


谁可以帮我呀,真的没有办法解决吗?
SQL服务器能取中文名吗?我取的是中文的,可以改吗?
还有,我用来连接SQL2000的JAVA程序没有放到Tomcat 6.0的目录下,需要放到哪去吗?
我直接放在F盘根目录下运行了````


从Stack Trace输出结果来看,LZ的驱动放置应该没有问题!
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 ja
va.net.ConnectException: Connection refused: connect
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(U
nknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Sour
ce)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at Test.main(Test.java:16)

关键是这句:Connection refused: connect……
具体问题我也不知道……-_-!!


啊,晕!!!
驱动名字不是不错了呢!!???我用的JDBC Driver for 2000的,是:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

LZ的是:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");


都说了请看我的异常来研究了````
我的驱动已经加载成功,我写的没错.我可是严格按照JDBC的驱动说明来编的.
也就是说到底应该怎么设置SQL的TCP/TP协议或者哪里的TCP/IP呢?
据说要改注册表,可是我不知道怎么改````


我用的是2005版的JDBC+sql2000
你用的是2000版的JDBC+sql
设置也有点不同的


大家还是告诉我,是不是用JAVA编程序连接数据库前,要先添加什么数据源?
我用来连接的JAVA程序是随意放一个目录的,没问题吧?
要怎么添加数据源呢?


没有问题的啊。。数据源和jdbc 是两种不同的连接方式。你上面的问题一般是你的sql驱动包和sql数据库不匹配造成的,建议下最新的jdbc驱动包


驱动是最新的呀```SQL2000+ 2005版的JDBC了




要不试试 sun 提供的驱动

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");


怎么用? 要做什么工作呀?




用那个的话,它说找不到合适的驱动?
怎么解决?


SQL Server 至少需要SP3
查一下版本吧。


lz还是打个sp3的补丁吧


问题已经解决,谢谢大家的帮忙!
解决方法: 不详.
该弄的都弄了,突然就得了,调试的地方太多太乱,没有目的,到底是动了哪里,我也不清楚.


↑返回目录
前一篇: Servlet是否可主动与浏览器断开?若可以,应该如何实现呢?
后一篇: 如何对-lt