2011-04-11 10 views
37

जब मैं इस प्रोग्राम को चलाने का प्रयास करता हूं तो मुझे यह अपवाद मिल रहा है। यह माइक्रोसॉफ्ट उदाहरणों में से एक है। मैंने प्रोजेक्ट गुणों के माध्यम से संकलन और रन दोनों के लिए netbeans में क्लासपाथ में sqljdbc4.jar जोड़ा है। मैंने यह भी परीक्षण किया कि वर्ग नीचे आयात विवरण का उपयोग करके पाया जा सकता है - संकलन के दौरान कोई त्रुटि नहीं है, इसलिए इसे जार ढूंढना होगा।java.sql.SQLException: jdbc के लिए कोई उपयुक्त ड्राइवर नहीं मिला: माइक्रोसॉफ्ट: sqlserver

क्या यह एक डीएलएल या कुछ एसक्यूएल डीएल से संबंधित हो सकता है जो sqldbc4.jar संदर्भ है?

यह सही अपवाद है, और पासवर्ड के अलावा, सटीक कोड नीचे दिया गया है।

अपवाद:

run: 
java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;databaseName=HealthCareDatabase 
Error Trace in getConnection() : No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;databaseName=HealthCareDatabase 
Error: No active Connection 
    at java.sql.DriverManager.getConnection(DriverManager.java:602) 
    at java.sql.DriverManager.getConnection(DriverManager.java:185) 
    at javaapplication1.Connect.getConnection(Connect.java:35) 
    at javaapplication1.Connect.displayDbProperties(Connect.java:50) 
    at javaapplication1.JavaApplication1.main(JavaApplication1.java:23) 
BUILD SUCCESSFUL (total time: 1 second) 

कोड:

package javaapplication1; 
import com.microsoft.sqlserver.jdbc.SQLServerDriver; 

import java.*; 

public class Connect { 

    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 = "HealthCareDatabase"; 
    private final String userName = "larry"; 
    private final String password = "xxxxxxx"; 

    // Constructor 
    public Connect() { 
    } 

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

    private java.sql.Connection getConnection() { 
     try { 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      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; 
    } 

    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 { 
     Connect myDbTest = new Connect(); 
     myDbTest.displayDbProperties(); 
    } 

}

+0

हाय .. क्या आपको इसके लिए समाधान मिला? मुझे भी एक ही समस्या का सामना करना पड़ता है .. कृपया मेरी मदद करें – Piraba

+1

उपरोक्त समस्या को हल करने के लिए नीचे अपना सरल कोड देखें ... –

+0

कृपया sqljdbc4.jar डाउनलोड करें और जेएमटर –

उत्तर

56

आपका यूआरएल jdbc:sqlserver://server:port;DatabaseName=dbname
होना चाहिए और कक्षा नाम com.microsoft.sqlserver.jdbc.SQLServerDriver
की तरह होना चाहिए उपयोग MicrosoftSQL Server JDBC Driver 2.0

012,351,
+1

की lib में जगह मुझे यही मिला है। –

+1

कृपया अपना यूआरएल जांचें। –

+3

ड्राइवर का एक [पुराना संस्करण] (http://support.microsoft.com/kb/313100) भ्रम के लिए दोषी है। [नया संस्करण] (http://msdn.microsoft.com/en-us/library/ms378428) उपयोग करने के लिए उचित उपसर्ग का उल्लेख करता है (jdbc: sqlserver: //)। –

5

SQL डेटाबेस से पढ़ने के लिए एक सरल कोड निम्नलिखित है। डेटाबेस नाम "डेटाबेस 1" है। तालिका का नाम "table1" है। इसमें दो कॉलम "अनाम" और "पास" होते हैं। अपनी परियोजना में "sqljdbc4.jar" जोड़ने के लिए मत भूलना। Download sqljdbc4.jar

public class NewClass { 

    public static void main(String[] args) { 

     Connection conn = null; 
     String dbName = "database1"; 
     String serverip="192.168.100.100"; 
     String serverport="1433"; 
     String url = "jdbc:sqlserver://"+serverip+"\\SQLEXPRESS:"+serverport+";databaseName="+dbName+""; 
     Statement stmt = null; 
     ResultSet result = null; 
     String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
     String databaseUserName = "admin"; 
     String databasePassword = "root"; 
     try { 
      Class.forName(driver).newInstance(); 
      conn = DriverManager.getConnection(url, databaseUserName, databasePassword); 
      stmt = conn.createStatement(); 
      result = null; 
      String pa,us; 
      result = stmt.executeQuery("select * from table1 "); 

      while (result.next()) { 
       us=result.getString("uname"); 
       pa = result.getString("pass");    
       System.out.println(us+" "+pa); 
      } 

      conn.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

यह मुझे अपवाद दे रहा है ... – Aniket

+0

@ एनीनेट - कृपया पूरा अपवाद पेस्ट करें –

+0

मैं नेटबीन्स 7.0.1 में वेब एप्लिकेशन पर काम कर रहा हूं अपवाद इस तरह है: सेवर: जावा रनटाइम एनवायरनमेंट (जेआरई) संस्करण 1.7 इस ड्राइवर द्वारा समर्थित नहीं है। Sqljdbc4.jar क्लास लाइब्रेरी का उपयोग करें, जो जेडीबीसी 4.0 के लिए समर्थन प्रदान करता है। सेवर: java.lang.UnsupportedOperationException: जावा रनटाइम पर्यावरण (जेआरई) संस्करण 1.7 इस ड्राइवर द्वारा समर्थित नहीं है। Sqljdbc4.jar क्लास लाइब्रेरी का उपयोग करें, जो जेडीबीसी 4.0 के लिए समर्थन प्रदान करता है। – Aniket

0

आप sqljdbc4-2.0.jar साथ नीचे की तरह की कोशिश कर सकते हैं:

public void getConnection() throws ClassNotFoundException, SQLException, IllegalAccessException, InstantiationException { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 
     String url = "jdbc:sqlserver://<SERVER_IP>:<PORT_NO>;databaseName=" + DATABASE_NAME; 
     Connection conn = DriverManager.getConnection(url, USERNAME, PASSWORD); 
     System.out.println("DB Connection started"); 
     Statement sta = conn.createStatement(); 
     String Sql = "select * from TABLE_NAME"; 
     ResultSet rs = sta.executeQuery(Sql); 
     while (rs.next()) { 
      System.out.println(rs.getString("COLUMN_NAME")); 
     } 
    } 
0

मैं एक ही त्रुटि हो रही थी, लेकिन एक उचित कनेक्शन स्ट्रिंग था। मेरी समस्या यह थी कि चालक का उपयोग नहीं किया जा रहा था, इसलिए संकलित युद्ध से अनुकूलित किया गया था।

ड्राइवर आयात करने के लिए सुनिश्चित करें:

import com.microsoft.sqlserver.jdbc.SQLServerDriver; 

और फिर मजबूर करने के लिए यह अंतिम युद्ध में शामिल किया जाना है, तो आप कुछ इस तरह कर सकते हैं:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

कि कतार में है मूल प्रश्न यह भी काम करेगा:

SQLServerDriver driver = new SQLServerDriver(); 
संबंधित मुद्दे