2011-11-11 181 views
0

我写了sql服务器连接部分。当我运行此代码时,出现此错误。Java SQl服务器连接错误

Error Trace in getConnection() : com.microsoft.jdbc.sqlserver.SQLServerDriver 
Error: No active Connection 
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 com.sample.DB.getConnection(DB.java:30) 
    at com.sample.DB.displayDbProperties(DB.java:49) 
    at com.sample.DB.main(DB.java:85) 

我已经安装了sql sever 2008 R2。我serached谷歌我无法找到解决办法....

这是我的代码

public class DB { 
    private java.sql.Connection con = null; 
    private final String url = "jdbc:microsoft:sqlserver://"; 
    private final String serverName= "localhost"; 
    private final String portNumber = "1433"; 
    private final String databaseName= "XONTHOMass_User"; 
    private final String userName = "sa"; 
    private final String password = "[email protected]"; 
    // Informs the driver to use server a side-cursor, 
    // which permits more than one active statement 
    // on a connection. 
    private final String selectMethod = "cursor"; 



    private String getConnectionUrl(){ 
     return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";"; 
    } 

    private java.sql.Connection getConnection(){ 
     try{ 
      System.out.println("========1========"); 
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
      System.out.println("==== 2====="); 
      con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password); 
      if(con!=null) System.out.println("Connection Successful!"); 
     }catch(Exception e){ 
       e.printStackTrace(); 
       System.out.println("Error Trace in getConnection() : " + e.getMessage()); 
     } 
     return con; 
    } 

    /* 
     Display the driver properties, database details 
    */ 

    public void displayDbProperties(){ 
     java.sql.DatabaseMetaData dm = null; 
     java.sql.ResultSet rs = null; 
     try{ 
       con= this.getConnection(); 
       if(con!=null){ 
        dm = con.getMetaData(); 
        System.out.println("Driver Information"); 
        System.out.println("\tDriver Name: "+ dm.getDriverName()); 
        System.out.println("\tDriver Version: "+ dm.getDriverVersion()); 
        System.out.println("\nDatabase Information "); 
        System.out.println("\tDatabase Name: "+ dm.getDatabaseProductName()); 
        System.out.println("\tDatabase Version: "+ dm.getDatabaseProductVersion()); 
        System.out.println("Avalilable Catalogs "); 
        rs = dm.getCatalogs(); 
        while(rs.next()){ 
         System.out.println("\tcatalog: "+ rs.getString(1)); 
        } 
        rs.close(); 
        rs = null; 
        closeConnection(); 
       }else System.out.println("Error: No active Connection"); 
     }catch(Exception e){ 
       e.printStackTrace(); 
     } 
     dm=null; 
    }  

    private void closeConnection(){ 
     try{ 
       if(con!=null) 
        con.close(); 
       con=null; 
     }catch(Exception e){ 
       e.printStackTrace(); 
     } 
    } 
    public static void main(String[] args) throws Exception 
     { 
     DB myDbTest = new DB(); 
     myDbTest.displayDbProperties(); 
     } 
} 

请帮me..I没有使用eclipse.I这个应用程序已经把jar文件也`sqljdbc4的.jar” ......

请帮我

回答

1

您收到异常:

抛出java.lang.ClassNotFoundException:com.microsoft.jdbc.sqlserver.SQLServerDriver

这意味着你的程序无法找到驱动程序,因此,即使不尝试连接到数据库。

的Mircosoft对How to Get Started with Microsoft JDBC的文章:

微软的SQL Server 2000 JDBC驱动程序.jar文件必须在CLASSPATH变量中列出。 CLASSPATH变量是搜索字符串,Java虚拟机(JVM)用于在您的计算机上的JDBC驱动程序..

0

作为一个完整的猜测,你已经安装快捷版(你应该总是提到的版本,而不仅仅是版本),但使用没有启用TCP/IP支持SQL Server配置管理器。默认情况下,Express Edition没有启用任何网络协议,因此,除非先启用,否则通过TCP/IP进行连接将不起作用。

0

我认为这是一个你需要使用

com.microsoft.sqlserver.jdbc.SQLServerDriver 

没有司机com.microsoft.jdbc.sqlserver.SQLServerDriver