🧚 ¡Oye! Beekeeper Studio es una GUI de bases de datos rápida, moderna y de código abierto Descarga
23 de septiembre de 2024 Por Matthew Rathbone

¿Qué es una cadena de conexión JDBC?

Una cadena de conexión JDBC es una URL que especifica el host de la base de datos, el puerto y otros parámetros necesarios para conectarte a una base de datos SQL Server. Esta cadena le da al driver JDBC toda la información que necesita para establecer la conexión.

Estructura básica de una cadena de conexión JDBC para SQL Server

El formato general de una cadena de conexión JDBC para SQL Server se ve así:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]];[property=value[;property=value]]
  • jdbc:sqlserver:// - El protocolo que se usa para una conexión JDBC.
  • serverName - El nombre o la dirección IP del servidor que aloja la instancia de SQL Server.
  • instanceName (opcional) - La instancia específica de SQL Server.
  • portNumber (opcional) - El puerto al que te conectas. El valor predeterminado es 1433.
  • property=value - Propiedades adicionales para configurar la conexión (como el nombre de la base de datos, los datos de autenticación, etc.).

Si trabajas con PostgreSQL, prueba nuestro PostgreSQL JDBC URL Builder para armar cadenas de conexión fácilmente.

Ejemplo: cadena de conexión JDBC mínima

String connectionUrl = "jdbc:sqlserver://localhost:1433;";

Esta es la forma más sencilla de una cadena de conexión, donde:

  • El servidor de base de datos está alojado localmente.
  • El puerto es el puerto predeterminado de SQL Server, 1433.

Ejemplo: cadena de conexión JDBC completa

Para una configuración más detallada, imagina un escenario en el que quieres conectarte a una instancia con nombre en un servidor remoto, con credenciales y base de datos específicas:

String connectionUrl = "jdbc:sqlserver://192.168.1.100\\SQLExpress:1433;"
                     + "databaseName=MyDatabase;"
                     + "user=myUsername;"
                     + "password=myPassword;";

Esto es lo que significa cada parte:

  • 192.168.1.100\\SQLExpress:1433 - Conéctate a la instancia SQLExpress en el servidor 192.168.1.100 usando el puerto 1433.
  • databaseName=MyDatabase - Conéctate a la base de datos específica llamada MyDatabase.
  • user=myUsername y password=myPassword - Son las credenciales que se usan para autenticarte.

Ejemplo con autenticación integrada de Windows

Si tu SQL Server está configurado para usar autenticación de Windows, puedes usar el parámetro integratedSecurity:

String connectionUrl = "jdbc:sqlserver://localhost:1433;"
                     + "databaseName=MyDatabase;"
                     + "integratedSecurity=true;";

Esto le indica al driver que use las credenciales de Windows del usuario que tiene la sesión iniciada para autenticarse.

Conexión con el driver JDBC

Para usar la cadena de conexión en una aplicación Java, necesitas cargar el driver JDBC de SQL Server y establecer una conexión. Aquí tienes un ejemplo completo de un programa en Java que se conecta a SQL Server usando JDBC:

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

public class SQLServerConnection {
    public static void main(String[] args) {
        String connectionUrl = "jdbc:sqlserver://localhost:1433;"
                             + "databaseName=MyDatabase;"
                             + "user=myUsername;"
                             + "password=myPassword;";

        try {
            // Load the SQL Server JDBC driver
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

            // Establish the connection
            Connection con = DriverManager.getConnection(connectionUrl);

            // Create and execute a basic SQL query
            String SQL = "SELECT * FROM Customers";
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(SQL);

            // Iterate through the result set and print the data
            while (rs.next()) {
                System.out.println(rs.getString("CustomerID") + " - " + rs.getString("CustomerName"));
            }

            // Close the resources
            rs.close();
            stmt.close();
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Salida esperada:

Suponiendo que tienes una tabla Customers en tu base de datos, al ejecutar el código anterior verás los IDs y nombres de los clientes así:

1 - John Doe
2 - Jane Smith
3 - Alice Johnson

Parámetros comunes de la cadena de conexión

Propiedad Descripción
databaseName Nombre de la base de datos a la que te conectas.
user Nombre de usuario para iniciar sesión en SQL Server.
password Contraseña para iniciar sesión en SQL Server.
integratedSecurity Si es true, habilita la autenticación de Windows.
encrypt Si es true, fuerza el cifrado de la conexión.
trustServerCertificate Si es true, confía en el certificado de SQL Server sin validarlo.

Solución de problemas de conexión

URL de conexión inválida

Si te aparece un error como:

com.microsoft.sqlserver.jdbc.SQLServerException: The connection string contains a badly formed name or value.

Revisa que la cadena de conexión siga el formato correcto y que no haya punto y coma (;) ni signos de igual (=) fuera de lugar.

El puerto no está escuchando

Si te aparece un error que indica que la conexión fue rechazada, asegúrate de que:

  • La instancia de SQL Server esté en ejecución.
  • El puerto especificado esté abierto y escuchando.

Puedes revisar en qué puerto está escuchando SQL Server ejecutando esta consulta en SQL Server:

SELECT DISTINCT local_net_address, local_tcp_port 
FROM sys.dm_exec_connections
WHERE local_net_address IS NOT NULL;

Driver no encontrado

Si ves un error como:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

Asegúrate de haber agregado el driver JDBC de SQL Server al classpath de tu proyecto. Puedes descargar el driver desde el sitio web de Microsoft.

Conclusión

Configurar una conexión JDBC a SQL Server es sencillo una vez que entiendes la estructura de la cadena de conexión. En este tutorial vimos lo esencial: cadenas de conexión básicas y avanzadas, cómo integrar la cadena de conexión en una aplicación Java y algunos consejos comunes para solucionar problemas.

Beekeeper Studio es un cliente de bases de datos gratuito y de código abierto

La mejor herramienta de consultas y edición de SQL que he usado. Tiene todo lo que necesito para administrar mi base de datos. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio es rápido, intuitivo y fácil de usar. Es compatible con muchísimas bases de datos y funciona de maravilla en Windows, Mac y Linux.

La versión de Beekeeper para Linux tiene el 100% de las funciones, sin recortes ni concesiones.

Lo que dicen los usuarios de Beekeeper Studio

★★★★★
"Beekeeper Studio reemplazó por completo mi antiguo flujo de trabajo con SQL. Es rápido, intuitivo y hace que trabajar con bases de datos vuelva a ser agradable."
— Alex K., desarrollador de bases de datos
★★★★★
"He probado muchas GUIs de bases de datos, pero Beekeeper logra el equilibrio perfecto entre funciones y simplicidad. Simplemente funciona."
— Sarah M., ingeniera Full Stack

¿Listo para mejorar tu flujo de trabajo con SQL?

download Descarga gratis