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'istanzaSQLExpresssul server192.168.1.100usando la porta1433. -
databaseName=MyDatabase- Connettiti al database specifico chiamatoMyDatabase. -
user=myUsernameepassword=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.
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."
"Ho provato molte GUI per database, ma Beekeeper trova l'equilibrio perfetto tra funzionalità e semplicità. Funziona e basta."