首先说明一下 
1.我数据库安装的是sql server 2005版本
2.不知道还要不要安装sql server 2000 sp3升级包(不过我也安装了,而且sp4也安装了)
3.sql server 2000 jdbc 驱动程序也安装了
安装目录下的lib文件夹下有三个.jar文件(msbase.jar ;mssqlserver.jar ;msutil.jar)也复制到了tomcat目录下,但我不知道是那个目录,就暂时放在common\lib下,还放到了bin文件夹下,(不知道对不对啊????)
然后设置classpath环境变量;我的设置如下:
classpath:  .;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\msbase.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\mssqlserver.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\msutil.jar;在xp系统下也设置了:
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;我的java程序如下:
import java.sql.*;
public class DBtest

public static final String drivername=
"com.microsoft.jdbc.sqlserver.SQLServerDriver";

public static final String url=
"jdbc:microsoft:sqlserver://127.0.0.1:8080;DatabaseName=EdocServer_db;";<!--这里的127.0.0.1:8080端口是不是有问题,我的数据库名称为EdocServer_db -->

public static final String user="sa";
public static final String password="exhibition";<!--数据库的用户名和密码到底是什么时候建的啊,难道是安装sqlserver时就建了,我不太记得了,好像是这个名字啊!要想查看的话在哪里能查看吗??-->
public static void main(String[] args)
{
String queryString="select userid,username form userinfo";<!--我在EdocServer_db数据库中建立一张userinfo表-->
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try
{
Class.forName(drivername);
conn=DriverManager.getConnection(url);
st=conn.createStatement();
rs=st.executeQuery(queryString); while(rs.next())
{
System.out.println("用户ID:"+rs.getString("userid")
+"用户名:"+rs.getString("username"));
}
rs.close();
st.close();
conn.close();
}
catch (Throwable t)
{
t.printStackTrace(System.out);
}
finally
{
try
{
if(rs!=null)
   rs.close();
}
catch(Exception e){}

try
{
if(st!=null)
   st.close();
}
catch(Exception e){}
try
{
if(st!=null)
   conn.close();
}
catch(Exception e){}
  }
}
}
这就是我的整个程序了 ,所以的配置也都配置了啊,可是在eclipse中调试出现了以下问题 :java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at DBtest.main(DBtest.java:20)
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  [../../../src/share/back/util.c:820]
请高手指教啊,星期一就要交差的问题啊,很焦急~~~~

解决方案 »

  1.   

    你的JDBC驱动是不是
    sqljdbc.jar 就一个文件?你的是JDBC 3.0的驱动请参考这个文章,直接看中间的JDBC 3.0 和2.0的区别,http://www.java2000.net/viewthread.jsp?tid=367
      

  2.   

    对!同上,必须用server 2005的驱动包,而且驱动的写法缓和2000的不同
    查下资料吧
      

  3.   

    引用:
    public static final String url= 
    "jdbc:microsoft:sqlserver://127.0.0.1:8080;DatabaseName=EdocServer_db;"; 
    楼主,你有修改过SQL Server服务器的端口吗?SQL Server的默认端口是1433哦,我看8080是你的TOMCAT服务器的端口吧,就算你修改了,也要保持你这两个服务器和端口和你已安装软件的端口冲突就行了如果再不行,就把这一句jdbc:microsoft:sqlserver://127.0.0.1:8080;DatabaseName=EdocServer_db去掉microsoft这个
    改成:jdbc:sqlserver://127.0.0.1:8080;DatabaseName=EdocServer_dbSQL SERVER安装的时候有提示你创建用户,账号默认是sa,密码为空;如果想测试你的账号,可以在服务器管理器里启动服务器的时候测试。
    或者直接打开企业管理,在登陆那里可以看到用户,也可以修改密码。或者放弃你以前的账号,再创建一个用户也是行的呀
      

  4.   

    不知道你装了MyEclipse没有,在MyEclipse中配置了Tomcat服务器没有,
    如果都有,直接把3个jar包丢在WebRoot/WEB-INF/lib下面即可,然后刷新工程
      

  5.   

    还有端口也有问题,Tomcat默认端口正好是8080,端口会有冲突
      

  6.   

    java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver 
    这个错误是说明你的包含sqlserver驱动的类没有被引入到项目中,最简单的做法就是把你那3个jar包拷贝到项目的WEB-INF/lib下而且还有一点,看这3个jar包的名字是sql2000的驱动包,你应该去下2005的驱动包