Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver

I'm getting this exception when I try to run this program. It's one of the Microsoft examples. I've added the sqljdbc4.jar to the classpath in netbeans for both compile and Run, via the project properties. I also tested that the class could be found by using an import statement below - no error during compile, so it must be finding the jar.

Could it be related to a dll or some sql dll that the sqldbc4.jar references?

This is the exact exception, and below is the exact code, except for password.

Exception:

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) 

Code:

 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();     } 

}

like image 417
Larry Watanabe Avatar asked Apr 11 '11 04:04

Larry Watanabe


People also ask

How do I fix No suitable driver found for JDBC Sqlserver?

Wrong JDBC Driver Name In order to fix this error just remove microsoft from URL. Correct JDBC URL format to connect SQL SERVER is "jdbc:sqlserver://localhost:1433";. No need to worry about CLASSPATH, because if the SQLJDBC4. jar is not present then it will give you a different error, something like java.

How do I fix no suitable driver for JDBC?

In brief, we can say that such an error occurs when no JDBC JAR file is added to the classpath of Java. Just we need to add the JAR file to the classpath and then execute the code. The code will hopefully get executed with success.

Could not get JDBC connection nested exception is Java SQL SQLException no suitable driver found for?

SQLException: No suitable driver found for 'jdbc:mysql://localhost:3306/mysql [Solution] This error comes when you are trying to connect to MySQL database from Java program using JDBC but either the JDBC driver for MySQL is not available in the classpath or it is not registered prior to calling the DriverManager.


1 Answers

Your URL should be jdbc:sqlserver://server:port;DatabaseName=dbname
and Class name should be like com.microsoft.sqlserver.jdbc.SQLServerDriver
Use MicrosoftSQL Server JDBC Driver 2.0

like image 120
Piyush Mattoo Avatar answered Sep 24 '22 10:09

Piyush Mattoo