小弟今天第一次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也打了!看异常的最后一行(程序中的红色部分)错误,我看了一下,感觉没错到底什么错误??..现在小弟无计可施,很无奈,很着急!望高手指教!。。

解决方案 »

  1.   

    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我[email protected]
    GOOD LUCK
      

  2.   

    看这里http://dev.csdn.net/article/70/70360.shtm
      

  3.   

    我用了二楼的测试方法试了一下,出现了下面的这个结果:类实例化成功! 
    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啊,怎么会无效呢???
      

  4.   

    你是什么系统,是不是没有打JDBC的SP4补丁?
      

  5.   

    xp系统,sp4也打了用ms sql就时麻烦,我用mysql一下就连上了,不知道为什么microsoft的东东怎么这么麻烦!。。郁闷~
      

  6.   

    String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";试试~~~~~~~~