接触java不久,发现java真的不错,但是在使用java连接sql server2000数据库时遇到了很奇怪的问题。
首先,使用jdbc连接sql server 
sql server 2000 sp4安装在windows 2003 server上,通过另一个xp系统远程连接,ms_jdbc已经安装,那三个包也加入了环境变量。程序如下:import java.sql.*;public class Test {
        public void executeQuery(String sql){
        try{          
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
           String str1="jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=7777777;DatabaseName=Northwind";
            //这里的用户和密码都是正确的
            Connection conn=DriverManager.getConnection(str1);
            Statement stmt=conn.createStatement();
            ResultSet rs=stmt.executeQuery(sql);
            while(rs.next()){
                System.out.println("TestName:"+rs.getString("lastname"));
            }
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
    public static void main(String[] args) {
        // TODO code application logic here
        Test t=new Test();
        t.executeQuery("select * from employee");
    }
}
可是这歌测试程序就是连接不上,在运行到Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");时就抛出异常,说无法加载Driver;请高手指教,错在何处,万分感谢。
第二,使用数据源ODBC方式连接时,即将上面的程序连接的部分改为:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:test", "sa", "7777777");
这时可以和sql server连接上,但是运行到ResultSet rs=stmt.executeQuery(sql);时,总是无法执行sql语句,报错说不识别employee这个表,百思不得其解。
请教高手指点上面这两种情况究竟错在哪里,谢谢各位仁兄了!

解决方案 »

  1.   

    估计是你的jar包没有导入成功,你的异常不就是找不到驱动类。
    还有你是要连接其他机器电脑的数据库吗?
    str1="jdbc:microsoft:sqlserver://localhost:1433;
    怎么还用localhost,localhost是针对你本机的
      

  2.   

    谢谢chabale,我再看看,str1="jdbc:microsoft:sqlserver://localhost:1433;是我测试本地的数据库用的,不好意思,这里贴错了,连接远程数据库时候localhost已经换成192.168.24.133,可是结果是一样的
      

  3.   

    自己顶一下,尤其是第二个问题,通过数据源ODBC连上了数据库,可是却不能执行sql语句查看表,搞不明白啊
      

  4.   

    第二个问题,已经解决,是数据表名字写错了,少写了个s,狂汗!昨天夜里看来神志不清了,但是第一个问题还得请教诸位,能不能给个比较详细的安装和导入mssqlserver.jar,msutil.jar,msbase.jar的过程?谢谢啦
      

  5.   

    问题已经解决,导入jar时出错,谢谢诸位,以后还得加紧学习啊!