sqljdbc4 microsoft for java sql-server jdbc

java - microsoft - ¿Cómo puedo usar el controlador MS JDBC con MS SQL Server 2008 Express?



sqljdbc4-4.0.jar download (6)

Mi configuración:

  • Windows XP SP3
  • JDBC 2005
  • MS SQL Server 2008 Express, expuesto a través de tcp / ip en el puerto 1433
  • sqljdbc.jar en la ruta de la clase

Lo intenté:

try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433/SQLEXPRESS2008;databaseName=Test;selectMethod=cursor", "sa", ""); } catch (Exception e) { e.printStackTrace(); }

Pero siempre arroja una excepción:

java.sql.SQLException: No suitable driver

También probé las siguientes URL:

localhost:1433/SQLEXPRESS2008 localhost/SQLEXPRESS2008 localhost

Mismos resultados ¿Alguna ayuda?


Puedes probar lo siguiente. Funciona bien en mi caso:

  1. Descargue el controlador JTDS JDBC actual
  2. Pon jtds-xxxjar en tu classpath.
  3. Copie ntlmauth.dll a windows / system32. Elija el dll basado en su hardware x86, x64 ...
  4. La url de conexión es: ''jdbc: jtds: sqlserver: // localhost: 1433 / YourDB'', no es necesario que proporcione nombre de usuario y contraseña.

Espero que ayude.


El último controlador de conectividad JDBC MSSQL se puede encontrar en JDBC 4.0

El archivo de clase debe estar en el classpath. Si está usando eclipse, puede hacer lo mismo haciendo lo siguiente ->

Haga clic con el botón secundario en Nombre del proyecto -> Propiedades -> Ruta de compilación de Java -> Bibliotecas -> Agregar tarros externos

También como ya se señaló por @Cheeso, la forma correcta de acceder es jdbc: sqlserver: // server: port; DatabaseName = dbname

Mientras tanto, encuentre una clase de muestra para acceder a MSSQL DB (2008 en mi caso).

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class ConnectMSSQLServer { public void dbConnect(String db_connect_string, String db_userid, String db_password) { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(db_connect_string, db_userid, db_password); System.out.println("connected"); Statement statement = conn.createStatement(); String queryString = "select * from SampleTable"; ResultSet rs = statement.executeQuery(queryString); while (rs.next()) { System.out.println(rs.getString(1)); } conn.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { ConnectMSSQLServer connServer = new ConnectMSSQLServer(); connServer.dbConnect("jdbc:sqlserver://xx.xx.xx.xxxx:1433;databaseName=MyDBName", "DB_USER","DB_PASSWORD"); } }

Espero que esto ayude.


Usted tiene la URL incorrecta.

No sé a qué te refieres con "JDBC 2005". Cuando miré en el sitio de Microsoft, encontré algo llamado Microsoft SQL Server JDBC Driver 2.0 . Lo querrás, incluye muchas correcciones y algunas mejoras de rendimiento. [edit: probablemente quieras el último controlador. A partir de marzo de 2012, el último controlador JDBC de Microsoft es JDBC 4.0.

Verifique las notas de la versión. Para este controlador, quieres:

URL: jdbc:sqlserver://server:port;DatabaseName=dbname Class name: com.microsoft.sqlserver.jdbc.SQLServerDriver

Parece que tienes el nombre de la clase correcto, pero la URL es incorrecta.

Microsoft cambió el nombre de clase y la URL después de su lanzamiento inicial de un controlador JDBC. La URL que está utilizando va con el controlador JDBC original de Microsoft, el que MS llama la "versión de SQL Server 2000". Pero ese controlador usa un nombre de clase diferente.

Para todos los controladores posteriores, la URL cambió al formulario que tengo aquí.

Esto está en las notas de la versión para el controlador JDBC.


  1. Descargue el último controlador JDBC (es decir, sqljdbc4.0 ) desde el sitio web de Microsoft
  2. Escriba el programa de la siguiente manera:

    import java.sql.*; class testmssql { public static void main(String args[]) throws Exception { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; databaseName=chapter16","sa","123");//repalce your databse name and user name Statement st=con.createStatement(); ResultSet rs=st.executeQuery("Select * from login");//replace your table name while(rs.next()) { String s1=rs.getString(1); String s2=rs.getString(2); System.out.println("UserID:"+s1+"Password:"+s2); } con.close(); } }

  3. Compile el programa y establezca el jar classpath viz: set classpath=C:/jdbc/sqljdbc4.jar;.; Si ha guardado su archivo jar en C:/jdbc después de descargarlo y extraerlo.

  4. Ejecute el programa y asegúrese de que su servicio TCP / IP esté habilitado. Si no está habilitado, entonces siga estos pasos:
    1. Vaya a Inicio -> Todos los programas -> Microsoft SQL Server 2008 -> Herramientas de configuración -> Administrador de configuración de SQL Server
    2. Expanda la configuración de red del servidor Sql: elija su instancia de MS SQL Server. MSQSLSERVER y habilite TCP / IP.
    3. Reinicie su instancia de MS SQL Server. Esto se puede hacer también desde el menú contextual de Microsoft SQL Server Management Studio en el nivel raíz de su instancia de servidor MS SQL

¿Instancias con nombre?

URL: jdbc: sqlserver: // [serverName] [/ instanceName] [: portNumber] [; property = value]

Nota: barra oblicua hacia atrás


Si su valor de databaseName es correcto, utilice esto: DriverManger.getconnection("jdbc:sqlserver://ServerIp:1433;user=myuser;password=mypassword;databaseName=databaseName;")