Ошибка подключения к серверу Java SQl - PullRequest
0 голосов
/ 11 ноября 2011

Я написал часть соединения с сервером 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 Server 2008 R2.Я разгадал Google, я не мог найти решение ....

Это мой код

    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 = "xont@123";
    // 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();
      }
}

Пожалуйста, помогите мне .. Я сделал это приложение, используя затмение. Я поставил банкуфайл также `sqljdbc4.jar '...

Пожалуйста, помогите мне

Ответы [ 4 ]

1 голос
/ 11 ноября 2011

Вы получаете исключение:

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

Это означает, что ваша программа не может найти драйвер и, следовательно, даже не пытается подключиться к базе данных.

В Mircosoft есть статья на Как начать работу с Microsoft JDBC :

Драйвер Microsoft SQL Server 2000 для файлов JDBC .jar должен быть указан в переменной CLASSPATH. Переменная CLASSPATH - это строка поиска, которую виртуальная машина Java (JVM) использует для поиска драйверов JDBC на вашем компьютере.

0 голосов
/ 26 июля 2013

Просто сделайте одну вещь, перейдите на http://www.java2s.com/Code/Jar/s/Downloadsqljdbcjar.htm и загрузите jar sqljdbc и используйте его в своей программе.

0 голосов
/ 13 июня 2013

Я думаю, что это драйвер, который вам нужно использовать

com.microsoft.sqlserver.jdbc.SQLServerDriver

не com.microsoft.jdbc.sqlserver.SQLServerDriver

0 голосов
/ 11 ноября 2011

Как полное предположение, вы установили Express Edition (вы должны всегда упоминать издание, а не только версию), но вы не включили поддержку TCP / IP с помощью диспетчера конфигурации SQL Server. По умолчанию в Express Edition не включены сетевые протоколы, поэтому подключение по TCP / IP не будет работать, если вы не включите его сначала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...