java 链接SQLserver2000时出错

今天安装了sqlserver2000然后下了一个jdbc驱动程序安装完后把lib下的三个.jar文件考到了ext目录下然后变了一个程序运行出错:java.sql.SQLE... 今天安装了sqlserver2000 然后下了一个jdbc驱动程序 安装完后 把lib下的三个.jar文件考到了ext目录下 然后变了一个程序 运行出错:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
。。。。
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]java
。。。。

我自己新建了一个名为java的数据库
程序如下:
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TestDB {
public static void main(String[] args){
try{
runTest();
}
catch(SQLException ex){
while(ex!=null)
{
ex.printStackTrace();
ex=ex.getNextException();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
public static void runTest()throws SQLException,IOException{
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch (ClassNotFoundException e) {

e.printStackTrace();
}

Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://java", "sa","19841017");

try{
Statement stat = conn.createStatement();
stat.execute("CREATE TABLE Greetings(Message CHAR(20))");
stat.execute("INSERT INTO Greetings VALUES('HELLO ,WORLD!')");

ResultSet result = stat.executeQuery("SELECT * FROM Greetings");
result.next();
System.out.println(result.getString(1));
stat.execute("DROP TABLE Greetings");
}
finally{
conn.close();
}
}

}

请大家帮我分析一下吧 安装完后还需要什么配置吗? 还是别的 ?
我用的是xp的水平sp2系统 按照各位好心人的建议 我打了sp3和sp4的补丁 写上了1433的端口号和localhost即:
Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=java", "sa","19841017");

可是错误又成了:[Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL.
是不是我写的jdbc的url不对啊 我的jdbc的驱动以及url都是从网上搜的 如果是url不对的话 有没有人可以给我一个好用的啊 sql的jdbc url格式是通用的吗 ?
展开
 我来答
孙鹏sunpeng
2007-10-07
知道答主
回答量:15
采纳率:0%
帮助的人:0
展开全部
估计有以下几个问题,你改好后试试看
1。Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=java", "sa","19841017"); 这里的19841017银该和你的数据库登陆密码是一样的吧?还有就是你的数据库建库时是否是属于sa用户?
2。导包 import com.microsoft.jdbc.sqlserver.SQLServerDriver;
如果你的三个jar包放对位置而且能够找到的话,直接就可以点出来
3。Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=java", "sa","19841017"); 这里的数据库名称为java,注意两个地方,一,=号后面不能有空格,二,java是保留字,可能有冲突,换个数据库名称试试。
4。如果怀疑是jdbc驱动的问题,建议使用桥连接。如果不出错的话,就是jar包的问题了。
5。runTest()方法最后的
finally{
conn.close();
}
不管连接是否成功,但是执行到这里conn都已经关闭。这样前面所做的连接丝毫没有意义。建议写个方法用于打开连接,返回conn,再专门写个静态的方法用于关闭连接。
6.防止其他的异常,
public static void main(String[] args){
try{
runTest();
}
catch(SQLException ex){
while(ex!=null)
{
ex.printStackTrace();
ex=ex.getNextException();
}
}
catch(IOException ex){
ex.printStackTrace();
} catch(Exception es){
es.printStackTrace();
}
}

如有其他疑问加 QQ416942102 附加信息JAVA
百度网友8fbbced
2007-10-04 · TA获得超过424个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:212万
展开全部
请将
Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://java", "sa","19841017");
改成以下代码试试:
Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=这里填你的数据库名称", "sa","19841017");
//localhost 代表本机 1433是SQL的端口号
如果你用的工具的eclipse,检查以下文件是否配好
右击你的项目--添加库--用户库--新增--找到你的3个.jar架包--确定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱死喵喵99
2007-10-08 · 超过19用户采纳过TA的回答
知道答主
回答量:351
采纳率:0%
帮助的人:199万
展开全部
下面是我成功的例子

URL地址不是通用的,每一种数据库对应的是不一样的

你的错误是在加载驱动的时候出错的,你可以看下是否成功加载了驱动

import java.sql.*;

import javax.swing.JOptionPane;
public class sqltest
{

public sqltest ()
{

}

public static void main (String[] agrs) throws SQLException
{
Connection conn = null;
String user="sa";
String password="RCZN72CP";
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
new sqltest ();
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn= java.sql.DriverManager.getConnection(url,user,password);
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,"装载连接sql server失败" + e.getMessage());

}
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery("select * from student;");
System.out.println ("ID"+" "+"NAME"+" "+"NO"+" "+"AGE");
while(rst.next())
{
System.out.println(trans(rst.getString("ID"))+" "+trans(rst.getString("NAME"))+trans(rst.getString("NO"))+trans(rst.getString("AGE")));
}
conn.close();
rst.close();
stmt.close();
}

static String trans(String chi)
{
String result = null;
byte temp[];
try
{
temp = chi.getBytes("iso-8859-1");
result = new String (temp);
}
catch(Exception e)
{
System.out.println(e.toString());
}
return result;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冷已
2007-10-04 · TA获得超过3540个赞
知道小有建树答主
回答量:336
采纳率:0%
帮助的人:0
展开全部
用sqlserver2000会出现这种问题,好像是版本有问题,但如用别的如:MYSQL,ORACLE就不会了
我以前也是这样,现在改换MYSQL了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang634573307
2007-10-05
知道答主
回答量:48
采纳率:0%
帮助的人:23.3万
展开全部
1433端口没打开!!
请问sqlserver2000打了SP4补丁没??
如果打了!!那就有可能是电脑中毒了!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jier007
2007-10-07
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
在你种了sp3或sp4的补丁的情况下:
严重建议你换驱动!sqlserver的jdbc驱动经常出问题(我经常遇到)!
重新copy一份就OK!

呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式