急救!。。JDBC连接sql出现错误!。。。。。

FL1429 2007-10-30 10:02:05
小弟今天第一次JDBC连接sql2000 然而出现了一大堆问题,让我一直头疼到现在,看下面的测试程序和异常。。。


程序:
import java.sql.*;

public class ConnectionDemo {
public static void main(String[] args) {
Connection con=null;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user="Feng";
String password="1234";
con=DriverManager.getConnection(url,user,password);
} catch (ClassNotFoundException e) {

e.printStackTrace();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
finally
{
try {
if(con!=null)
con.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
}

异常:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at packageSQL.ConnectionDemo.main(ConnectionDemo.java:15)

出现这个异常,就是说明连接sql出现错误,我看了sql的端口号是1433,然后我的登陆模式也是混合模式,还有我的sql server sp4也打了!。。。。。。

看异常的最后一行(程序中的红色部分)错误,我看了一下,感觉没错。。。。。。

到底什么错误??..现在小弟无计可施,很无奈,很着急!望高手指教!。。。。。
...全文
126 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanglang555 2007-10-31
  • 打赏
  • 举报
回复
你是什么系统,是不是没有打JDBC的SP4补丁?
FL1429 2007-10-31
  • 打赏
  • 举报
回复
我用了二楼的测试方法试了一下,出现了下面的这个结果:

类实例化成功!
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at packageSQL.JDBCConnectionTest.main(JDBCConnectionTest.java:23)

类实例化成功,说明我的sql驱动包没错!

但异常象是在说无效的URL,但用的是localhost啊,怎么会无效呢???
Tony2251 2007-10-31
  • 打赏
  • 举报
回复
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";试试~~~~~~~~
Tony2251 2007-10-31
  • 打赏
  • 举报
回复
1楼说的很详细了。
FL1429 2007-10-31
  • 打赏
  • 举报
回复
xp系统,sp4也打了。。。。。。

用ms sql就时麻烦,我用mysql一下就连上了,不知道为什么microsoft的东东怎么这么麻烦!。。。。。郁闷~
chenjia323 2007-10-30
  • 打赏
  • 举报
回复
看这里

http://dev.csdn.net/article/70/70360.shtm
fantee 2007-10-30
  • 打赏
  • 举报
回复
1:JDK和SQL安装正确,SQL安装要选择混合验证模式.
2:下载并安装与SQL连接的JDBC驱动,要及时打补丁.
3:将JDBC所在目录下的lib目录下的三个.jar文件加到classpath中.加入后classpath中的路径应 为:,;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;D:\Java\jdk1.6.0_01\lib或把 这三个文件拷贝到Java\jre1.6.0_01\lib\ext下.
4:在所建工程中也有导入这三个库文件.
5:打开数据库服务器,建立相应的数据库和表.
6:编写相应的测试程序:
package mypackage;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

class JDBCConnectionTest{
public static void main(String args[])
{
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://localhost:1433";
String user ="sa";//这里替换成你自已的数据库用户名
String password = "sa";//这里替换成你自已的数据库用户密码
String sqlStr = "select * from schoolManger.dbo.student";

try{ //这里的异常处理语句是必需的.否则不能通过编译!
Class.forName(driverName);
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( "操作数据表成功!" );

while(rs.next())
{
System.out.print(rs.getInt("Sno") + " ");
System.out.print(rs.getString("Sname") + " ");
System.out.print(rs.getInt("Sage") + " ");
System.out.print(rs.getString("Ssex") + " ");
System.out.println(rs.getString("Sclass"));
}
rs.close();
st.close();
con.close();
}
catch(Exception err){
err.printStackTrace(System.out);
}
}
}
输出相应的结果:
创建连接对像成功!
创建Statement成功!
操作数据表成功!

1 xxx 22 男 2004050304
2 yyy 21 男 2004050304
还有问题的话E我.fantee@163.com
GOOD LUCK

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧