Conectar SQL Server con Java

Conectar Java con SQL Server: una vez hayamos creado nuestra base de datos, seguramente necesitamos conectarla con una aplicación que realizaremos en un lenguaje de nuestra preferencia, si elegimos Java para conectar la base de datos debemos hacer lo siguientes pasos para conectarnos a la base de datos:

Para realizar la conexión con una base de datos MySQL visita: Conectar Java con MySQL.

Conectar Java con SQL Server

Primero descargamos el controlador JDBC para SQL Server, nos dirigimos al siguiente enlace: descargar JDBC.

Una vez ingresemos a la página indicada, tenemos dos versiones para descargar, una .exe y otro .tar.gz, ambos son iguales solo que el archivo .exe se extraerá automáticamente al darle doble clic.

Una vez lo tengamos descargado, los descomprimimos y guardamos en una carpeta de nuestra preferencia.

Creamos nuestra aplicación Java, en mi caso usaré el IDE Netbeans 8.x.

Para conectarnos necesitaremos en siguiente código java:

  • DB_Name es el nombre de la base de datos a la que deseamos conectarnos, la cual hemos creado previamente con SQL Server.
  • integratedSecurity=true establece que usaremos la autenticación integrada de Windows, si lo deseamos podemos conectarnos a la base de datos con el nombre y contraseña de un usuario válido.

Para que el código que acabamos de agregar funcione debemos añadir el JDBC que descargamos a nuestro proyecto java, hacemos lo siguiente:

Agregar JDBC de SQL Server a un proyecto Java creado con Netbeans

Agregar JDBC de SQL Server a un proyecto Java

Hecho esto solo nos falta un paso, debemos habilitar la DLL sqljdbc_auth que se encuentra en la carpeta auth/x86 o auth/x64 elegimos la opción que corresponda a nuestro sistema operativo.

Lo que debemos hacer es colocar esta DLL en la ruta del sistema para que pueda ser utilizada, hay varias formas para hacer esto pero la más rápida y sencilla es copiar la DLL y pegarla en el directorio raíz de nuestro proyecto.

Otra opción para el proyecto pueda usar la DLL es agregar la ruta donde se encuentra la misma a la variable de entorno PATH.

Para que esté listo todo debemos configurar SQL Server para que admita conexiones remotas, para ello ejecutamos el administrador de configuraciones de SQL Server, habilitamos TPC/IP y en las propiedades cambiamos el puerto a 1433, deshabilitamos los puertos dinámicos.

Configurar SQL Server para conectar con Java

Habilitar puerto SQL Server para admitir conexiones Java

Con esto al ejecutar el programa veremos el mensaje: "conectado", si todo ha salido bien.

Espero les sea de ayuda, el siguiente paso es realizar las consultas, de eso se trata el tutorial: Acceder a los datos.

Comentarios

  1. buen tutorial....me gustaria saber, de donde obtener el SQL server, para instalarlo

    ResponderEliminar
  2. Hola quisiera saber si me podrias ayudar, en la universidad "En la materia Base de Datos) me han dejado que haga un boton que se conecte a sql y que al cliquearlo cree una base de datos, sabes como hacerlo?
    te dejo mi correo: edwin-torres@hotmail.com
    gracias de antemano!

    ResponderEliminar
  3. eres el puto amo xDD gracias muy buen dato

    ResponderEliminar
  4. hola quisiera saber cual es la diferencia entre un sql developer y sql server

    ResponderEliminar
    Respuestas
    1. sql developer incluye de forma gratuita todo el conjunto de características de SQL Server Enterprise, permite a los desarrolladores compilar, probar y demostrar aplicaciones en un entorno que no sea de producción.

      Eliminar
    2. DIOS !!! HE PASADO 6 MESES TRATANDO DE ENCONTRAR EL PUTO PROBLEMA Y LO ENCONTRÉ AQUÍ ... GRACIAS HERMANO!

      P.D: No agregue la variable de entorno :/

      Eliminar
  5. Gracias por el aporte, tenía el problema que faltaba habilitar el puerto. Con eso y reiniciar el servicio Sql funcionó. Gracias!

    ResponderEliminar
  6. Respuestas
    1. Debes colocarla en la carpeta de tu proyecto, otra opción es agregar la dll al la variable entorno PATH.

      Eliminar
  7. Hola, excelente tutorial. Cuando intento conectarme me está dando el siguiente mensaje:
    "No suitable driver found for jdbc:sqlserver://JFINOCCHIARONB/JUANPABLO;database=prueba;integratedSecurity=true;"
    Agregué la librería y la DLL en la variable PATH del sistema
    Desde ya muchas gracias !!!

    ResponderEliminar
    Respuestas
    1. Asegúrate de haber agregado la librería .jar correctamente al proyecto, ademas verifica que la cadena de conexión esté escrita correctamente.

      Eliminar
    2. a mi me funciona declarando el main y enseguida lo siguiente...

      primero importar esto:

      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.sql.Statement;

      luego en el main:

      public static void main(String[] args) throws ClassNotFoundException, SQLException {
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
      String connectionUrl = "jdbc:sqlserver://nombre-servidor:1433;databaseName=nombre-DB;user=usuario-de-coneccion;password=***;";
      Connection con = DriverManager.getConnection(connectionUrl);
      System.out.println("Conectado...");

      }

      de igual forma me ayudó mucho esta información publicada en el blog. Mchas gracias Tutor de Programación.

      Eliminar
    3. Hola fíjate que a mí no me imprime en pantalla el mensaje de conectado

      No se si ha de ser porque no se conecta a la base, pero no me da ningún mensaje de error

      Eliminar
  8. Hola, solo me lanza error, ademas no se cual de los 2 .jar meter a mi proyecto porque me salen 2 al descargarlos, el jre7 y jre8 cual uso?

    ResponderEliminar
  9. disculpe me podria ayudar con los métodos mas importantes para conectar a una base
    de datos

    ResponderEliminar
  10. Muchas gracias, me aclaraste ciertas dudas. Un crack

    ResponderEliminar
  11. como puedo saber el drive correcto

    ResponderEliminar
  12. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  13. Estoy utilizando SQL express 18 y Apache netbeans 12..6 , el jdk 17 y me sale errores aún habilitando el TCP/IP

    ResponderEliminar

Publicar un comentario

Temas relacionados

Entradas populares de este blog

tkinter Grid

tkinter Canvas

Histogramas OpenCV Python