求救!在xp下用ms的SQL Server 2000 Driver for JDBC Service Pack 3死活连接sql server2000~~~~~~~~

kamiiyu 2006-06-13 12:34:06
我自己写的一个连接数据库的程序:

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

public class Jdbctest
{
protected Jdbctest()
{

}

public static void main(String [] args)
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

}
catch(ClassNotFoundException ce)
{
System.out.println(ce);
}

try
{
String url="jdbc:microsoft:sqlserver://localhost:1433;databassName =friends";
Connection con=DriverManager.getConnection(url,"sa","sa");
Statement s=con.createStatement();
ResultSet rs=s.executeQuery("select * from friends");
while(rs.next())
{
System.out.print(rs.getString(1)+"\t");
System.out.print(rs.getString(2)+"\t");
System.out.print(rs.getInt(3)+"\t");
System.out.print(rs.getDate(4)+"\t");
System.out.print(rs.getInt(5)+"\t");
System.out.println(" ");
}
rs.close();
s.close();
}
catch(SQLException ce)
{
System.out.println(ce);
}
}
}

但是运行的时候会产生ClassNotFoundException的异常,明显就是我的jdbc的驱动注册不成功,我查了一晚上csdn上相关的帖子,用提到的方法都不能解决,例如修改环境变量——CLASSPATH= .;C:\driver\msbase.jar;C:\driver\mssqlserver.jar;C:\driver\msutil.jar ,或者直接复制到/……/jre/lib/ext所在的ext目录,或者用jdk1.4都是不能解决问题。我用JCreator Pro或者直接在命令行“java Jdbctest”都是出同样的问题。

而其中有些朋友说过自己也有类似的经历,不过有时候重装系统或者直接装windows2000就解决了。我用的是XP,jdk是用1.5,而我在ms下载的SQL Server 2000 Driver for JDBC Service Pack 3似乎又没有明确说明支持1.5。

所以我想问问大家是不是xp或者jdbc驱动版本的问题?我这种情况还有什么方法可以解决?

弄了一晚上,也弄不好非常郁闷,而且小弟刚来,分不多,大家高抬贵手,帮帮忙啊~~~~~
...全文
633 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsguang 2006-06-13
  • 打赏
  • 举报
回复
你需要注意的是1433端口开了没有?
另外,你的SP3的补丁应该是手动不上去才行的,SP3的JDBC在JDK1.5下没有问题

主要问题是XP特别是SP2把1433端口屏蔽了,需要打补丁

如果一切确定没问题了,看看你有没有把驱动程序加到开发工具里
kamiiyu 2006-06-13
  • 打赏
  • 举报
回复
感谢jsjboss(沉珂)啊~的确是你所说的问题,问题已经解决了,太谢谢了。

对于楼上各位帮助我的朋友也表示感谢,一点小分不成请笑纳,结贴~
沉珂 2006-06-13
  • 打赏
  • 举报
回复
请问下LZ。。。
你用什么编译器?
这个问题主要是因为编译器没认到包,
象jbuilder,
虽然你加入到jdk里,
但在工程属性里还是应该再引入的。
如果用jbuilder时,
Project-->Prject Properties-->Paths-->Required Libraries-->Add

jcreatro时,也应该引入那三个包。。。
renncpc 2006-06-13
  • 打赏
  • 举报
回复
推荐你别用微软的jdbc,用jtds.jar这个好用一点。
kamiiyu 2006-06-13
  • 打赏
  • 举报
回复
错误信息:

java.lang.ClassNotFoundException:com.microsoft.jdbc.sqlserver.SQLServerDriver
java.sql.SQLException:No suitable driver

找不到驱动,所以当然就抛出第二个没有找到合适驱动的异常

我在网上又找到一个别人写好的测试连接的程序,运行后出现的第一句异常是一模一样的,证明真的是我的驱动有问题,但是试过很多办法都不行,难道真要重装系统装2000或者重装sqlserver?


一下是我在网上找到的另一段代码,也是编译通过,运行时抛出找不到类的异常


/************************************************
/*
/*DbTest.java
/*
/******************************************* */
import java.sql.*; public class DbTest
{
Connection con;
Statement sta;
ResultSet rs;
String driver;
String url;
String user;
String pwd;
public DbTest()
{
driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";;
url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName =StoreManager";
user = "sa";
pwd = "potsmart10";
init();
}
public void init()
{
try{
Class.forName(driver);
System.out.println("driver is ok");
con = DriverManager.getConnection(url,user,pwd);
System.out.println("conection is ok");
sta = con.createStatement();
rs = sta.executeQuery("select * from room");
while(rs.next())
System.out.println(rs.getInt("roomNum"));
}catch(Exception e)
{
e.printStackTrace();
}
}

public static void main(String [] args)
{
new DbTest();
}
}
cleverbing 2006-06-13
  • 打赏
  • 举报
回复
不需要重启的
kamiiyu 2006-06-13
  • 打赏
  • 举报
回复
还有听说如果放在/……/jre/lib/ext所在的ext目录的时候需要重启系统几次,我重启了三次但还是不行,这时我的CLASSPATH=.
cleverbing 2006-06-13
  • 打赏
  • 举报
回复
把错误信息帖完整来看看
cleverbing 2006-06-13
  • 打赏
  • 举报
回复
你的问题应该是没找到驱动
kamiiyu 2006-06-13
  • 打赏
  • 举报
回复
解决方法1:
CLASSPATH= .;C:\driver\msbase.jar;C:\driver\mssqlserver.jar;C:\driver\msutil.jar 解决方法2:
直接复制到/……/jre/lib/ext所在的ext目录

以上两个方法我都分别试过,但是问题还是一样

cleverbing 2006-06-13
  • 打赏
  • 举报
回复
你把驱动放到JDK安装目录下的jre/lib/ext目录下呢?试试~
kamiiyu 2006-06-13
  • 打赏
  • 举报
回复
谢谢楼上朋友

端口的问题我也注意到了,打了sqlserver sp4的补丁,应该是已经打开

至于驱动我是已经安装了的,但无论是采用修改环境变量或者直接放进jdk相关的目录里面都还是问题依旧,郁闷死人了
cleverbing 2006-06-13
  • 打赏
  • 举报
回复
支持楼上,ClassNotFoundException异常是你的程序没找到驱动,以前我也出现过这样的问题,你把驱动放到/……/jre/lib/ext目录下不行吗?或者打打SP4补丁。

62,635

社区成员

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

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