🧚 Ascolta! Beekeeper Studio è una GUI per database veloce, moderna e open source Scarica
23 settembre 2024 Di Matthew Rathbone

Cos'è una stringa di connessione JDBC?

Una stringa di connessione JDBC è un URL che specifica l'host del database, la porta e gli altri parametri necessari per connettersi a un database SQL Server. Questa stringa fornisce al driver JDBC tutte le informazioni necessarie per stabilire una connessione.

Struttura di base di una stringa di connessione JDBC per SQL Server

Il formato generale di una stringa di connessione JDBC per SQL Server è questo:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]];[property=value[;property=value]]
  • jdbc:sqlserver:// - Il protocollo usato per una connessione JDBC.
  • serverName - Il nome o l'indirizzo IP del server che ospita l'istanza SQL Server.
  • instanceName (opzionale) - L'istanza SQL Server specifica.
  • portNumber (opzionale) - La porta a cui connettersi. Il valore predefinito è 1433.
  • property=value - Proprietà aggiuntive per configurare la connessione (come il nome del database, i dati di autenticazione, ecc.).

Se lavori con PostgreSQL, dai un'occhiata al nostro PostgreSQL JDBC URL Builder per creare facilmente le stringhe di connessione.

Esempio: stringa di connessione JDBC minima

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

Questa è la forma più semplice di stringa di connessione, in cui:

  • Il server del database è ospitato in locale.
  • La porta è quella predefinita di SQL Server, 1433.

Esempio: stringa di connessione JDBC completa

Per una configurazione più dettagliata, considera uno scenario in cui vuoi connetterti a un'istanza denominata su un server remoto, con credenziali e database specifici:

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

Ecco cosa significa ogni parte:

  • 192.168.1.100\\SQLExpress:1433 - Connettiti all'istanza SQLExpress sul server 192.168.1.100 usando la porta 1433.
  • databaseName=MyDatabase - Connettiti al database specifico chiamato MyDatabase.
  • user=myUsername e password=myPassword - Sono le credenziali usate per l'autenticazione.

Esempio con l'autenticazione integrata di Windows

Se il tuo SQL Server è configurato per usare l'autenticazione di Windows, puoi usare il parametro integratedSecurity:

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

In questo modo il driver usa per l'autenticazione le credenziali Windows dell'utente attualmente connesso.

Connettersi con il driver JDBC

Per usare la stringa di connessione in un'applicazione Java, devi caricare il driver JDBC di SQL Server e stabilire una connessione. Ecco un esempio completo di programma Java che si connette a SQL Server tramite 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();
        }
    }
}

Output previsto:

Supponendo di avere una tabella Customers nel tuo database, eseguendo il codice qui sopra otterrai gli ID e i nomi dei clienti, così:

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

Parametri comuni della stringa di connessione

Proprietà Descrizione
databaseName Nome del database a cui connettersi.
user Nome utente per il login a SQL Server.
password Password per il login a SQL Server.
integratedSecurity Se true, abilita l'autenticazione di Windows.
encrypt Se true, forza la crittografia della connessione.
trustServerCertificate Se true, considera attendibile il certificato di SQL Server senza convalidarlo.

Risolvere i problemi di connessione

URL di connessione non valido

Se ricevi un errore come:

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

Controlla che la stringa di connessione segua il formato corretto e che non ci siano punti e virgola (;) o segni di uguale (=) fuori posto.

Porta non in ascolto

Se ricevi un errore che indica che la connessione è stata rifiutata, assicurati che:

  • L'istanza SQL Server sia in esecuzione.
  • La porta specificata sia aperta e in ascolto.

Puoi verificare su quale porta è in ascolto SQL Server eseguendo questa query in SQL Server:

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

Driver non trovato

Se vedi un errore come:

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

Assicurati di aver aggiunto il driver JDBC di SQL Server al classpath del tuo progetto. Puoi scaricare il driver dal sito di Microsoft.

Conclusione

Configurare una connessione JDBC a SQL Server è semplice una volta capita la struttura della stringa di connessione. Questo tutorial ha trattato gli aspetti essenziali, incluse le stringhe di connessione di base e avanzate, come integrare la stringa di connessione in un'applicazione Java e alcuni consigli comuni per risolvere i problemi.

Beekeeper Studio è una GUI per database gratuita & open source

Il miglior strumento per query & editor SQL che abbia mai usato. Offre tutto ciò che mi serve per gestire il mio database. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio è veloce, intuitivo e facile da usare. Beekeeper supporta tantissimi database e funziona alla grande su Windows, Mac e Linux.

La versione Linux di Beekeeper è completa al 100%, senza tagli e senza compromessi sulle funzionalità.

Cosa dicono gli utenti di Beekeeper Studio

★★★★★
"Beekeeper Studio ha sostituito completamente il mio vecchio workflow SQL. È veloce, intuitivo e rende di nuovo piacevole lavorare con i database."
— Alex K., Database Developer
★★★★★
"Ho provato molte GUI per database, ma Beekeeper trova l'equilibrio perfetto tra funzionalità e semplicità. Funziona e basta."
— Sarah M., Full Stack Engineer

Pronto a migliorare il tuo workflow SQL?

download Scarica gratis