java.sql.SQLException: No se encontró un controlador adecuado para jdbc: microsoft: sqlserver

Obtengo esta excepción cuando bash ejecutar este progtwig. Es uno de los ejemplos de Microsoft. He agregado el sqljdbc4.jar al classpath en netbeans para comstackr y ejecutar, a través de las propiedades del proyecto. También probé que la clase se podía encontrar utilizando una statement de importación a continuación, sin errores durante la comstackción, por lo que debe encontrar el contenedor.

¿Podría estar relacionado con un archivo dll o sql dll al que hace referencia el sqldbc4.jar?

Esta es la excepción exacta, y abajo está el código exacto, a excepción de la contraseña.

Excepción:

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) 

Código:

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

}

Su URL debe ser jdbc:sqlserver://server:port;DatabaseName=dbname
y el nombre de clase debería ser como com.microsoft.sqlserver.jdbc.SQLServerDriver
Utilice el controlador JDBC 2.0 de MicrosoftSQL Server

A continuación se muestra un código simple para leer desde la base de datos SQL. Los nombres de las bases de datos son “database1”. El nombre de la tabla es “tabla1”. Contiene dos columnas “uname” y “pass”. No olvides agregar “sqljdbc4.jar” a tu proyecto. Descargar 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(); } } } 

Puede intentar lo siguiente con sqljdbc4-2.0.jar:

  public void getConnection() throws ClassNotFoundException, SQLException, IllegalAccessException, InstantiationException { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); String url = "jdbc:sqlserver://:;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")); } } 

Estaba teniendo el mismo error, pero tenía una cadena de conexión adecuada. Mi problema era que el controlador no se estaba utilizando, por lo tanto, se optimizó fuera de la guerra comstackda.

Asegúrese de importar el controlador:

 import com.microsoft.sqlserver.jdbc.SQLServerDriver; 

Y luego para obligarlo a ser incluido en la guerra final, puedes hacer algo como esto:

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

Esa línea está en la pregunta original. Esto también funcionará:

 SQLServerDriver driver = new SQLServerDriver(); 

Para alguien que busca resolverlo usando maven. Agregue la dependencia a continuación en POM:

  com.microsoft.sqlserver mssql-jdbc 7.0.0.jre8  

Y use el siguiente código para la conexión:

 String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=master;user=sa;password=your_password"; try { System.out.print("Connecting to SQL Server ... "); try (Connection connection = DriverManager.getConnection(connectionUrl)) { System.out.println("Done."); } } catch (Exception e) { System.out.println(); e.printStackTrace(); } 

Busque este enlace para otras consultas de tipo CRUD.

    Intereting Posts