Was ist ein JDBC-Connection-String?
Ein JDBC-Connection-String ist eine URL, die den Datenbank-Host, den Port und weitere Parameter angibt, die für die Verbindung zu einer SQL Server-Datenbank nötig sind. Dieser String liefert dem JDBC-Treiber alle Informationen, die er zum Aufbau einer Verbindung braucht.
Grundstruktur eines JDBC-Connection-Strings für SQL Server
Das allgemeine Format eines JDBC-Connection-Strings für SQL Server sieht so aus:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]];[property=value[;property=value]]
- jdbc:sqlserver:// – Das Protokoll für eine JDBC-Verbindung.
- serverName – Der Name oder die IP-Adresse des Servers, auf dem die SQL Server-Instanz läuft.
- instanceName (optional) – Die konkrete SQL Server-Instanz.
- portNumber (optional) – Der Port für die Verbindung. Standard ist 1433.
- property=value – Zusätzliche Eigenschaften zur Konfiguration der Verbindung (z. B. Datenbankname, Authentifizierungsdaten usw.).
Wenn du mit PostgreSQL arbeitest, schau dir unseren PostgreSQL JDBC URL Builder an, mit dem du Connection-Strings ganz einfach zusammenstellst.
Beispiel: Minimaler JDBC-Connection-String
String connectionUrl = "jdbc:sqlserver://localhost:1433;";
Das ist die einfachste Form eines Connection-Strings, bei der:
- der Datenbankserver lokal läuft.
- der Port der SQL Server-Standardport 1433 ist.
Beispiel: Vollständiger JDBC-Connection-String
Für ein detaillierteres Setup nehmen wir an, du willst dich mit bestimmten Zugangsdaten und einer bestimmten Datenbank zu einer benannten Instanz auf einem Remote-Server verbinden:
String connectionUrl = "jdbc:sqlserver://192.168.1.100\\SQLExpress:1433;"
+ "databaseName=MyDatabase;"
+ "user=myUsername;"
+ "password=myPassword;";
Das bedeuten die einzelnen Teile:
-
192.168.1.100\\SQLExpress:1433– Verbindung zur InstanzSQLExpressauf dem Server192.168.1.100über Port1433. -
databaseName=MyDatabase– Verbindung zur Datenbank mit dem NamenMyDatabase. -
user=myUsernameundpassword=myPassword– Das sind die Zugangsdaten für die Authentifizierung.
Beispiel mit integrierter Windows-Authentifizierung
Wenn dein SQL Server für die Windows-Authentifizierung eingerichtet ist, kannst du den Parameter integratedSecurity verwenden:
String connectionUrl = "jdbc:sqlserver://localhost:1433;"
+ "databaseName=MyDatabase;"
+ "integratedSecurity=true;";
Damit verwendet der Treiber die Windows-Zugangsdaten des aktuell angemeldeten Benutzers zur Authentifizierung.
Verbindung mit dem JDBC-Treiber
Um den Connection-String in einer Java-Anwendung zu nutzen, musst du den SQL Server-JDBC-Treiber laden und eine Verbindung aufbauen. Hier ist ein vollständiges Beispiel für ein Java-Programm, das sich per JDBC mit SQL Server verbindet:
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();
}
}
}
Erwartete Ausgabe:
Wenn deine Datenbank eine Tabelle Customers enthält, gibt der obige Code die Kunden-IDs und Namen etwa so aus:
1 - John Doe
2 - Jane Smith
3 - Alice Johnson
Häufige Parameter im Connection-String
| Eigenschaft | Beschreibung |
|---|---|
| databaseName | Name der Datenbank, mit der verbunden werden soll. |
| user | Benutzername für die SQL Server-Anmeldung. |
| password | Passwort für die SQL Server-Anmeldung. |
| integratedSecurity | Bei true wird die Windows-Authentifizierung aktiviert. |
| encrypt | Bei true wird die Verbindung zwingend verschlüsselt. |
| trustServerCertificate | Bei true wird dem SQL Server-Zertifikat ohne Prüfung vertraut. |
Verbindungsprobleme beheben
Ungültige Verbindungs-URL
Wenn du einen Fehler wie diesen bekommst:
com.microsoft.sqlserver.jdbc.SQLServerException: The connection string contains a badly formed name or value.
Prüfe, ob der Connection-String das richtige Format hat und keine Semikolons (;) oder Gleichheitszeichen (=) falsch gesetzt sind.
Port lauscht nicht
Wenn du einen Fehler bekommst, dass die Verbindung abgelehnt wurde, stelle sicher, dass:
- die SQL Server-Instanz läuft.
- der angegebene Port offen ist und lauscht.
Mit dieser Abfrage in SQL Server kannst du prüfen, auf welchem Port SQL Server lauscht:
SELECT DISTINCT local_net_address, local_tcp_port
FROM sys.dm_exec_connections
WHERE local_net_address IS NOT NULL;
Treiber nicht gefunden
Wenn du einen Fehler wie diesen siehst:
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
Stelle sicher, dass du den SQL Server-JDBC-Treiber zum Classpath deines Projekts hinzugefügt hast. Du kannst den Treiber auf der Website von Microsoft herunterladen.
Fazit
Eine JDBC-Verbindung zu SQL Server einzurichten ist ganz einfach, sobald du den Aufbau des Connection-Strings verstanden hast. Dieses Tutorial hat die Grundlagen abgedeckt: einfache und fortgeschrittene Connection-Strings, die Einbindung des Connection-Strings in eine Java-Anwendung und einige häufige Tipps zur Fehlerbehebung.
Beekeeper Studio ist eine kostenlose & quelloffene Datenbank-GUI
Das beste SQL-Abfrage- & Editor-Tool, das ich je benutzt habe. Es bietet alles, was ich zum Verwalten meiner Datenbank brauche. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio ist schnell, intuitiv und einfach zu bedienen. Beekeeper unterstützt jede Menge Datenbanken und läuft hervorragend auf Windows, Mac und Linux.
Was Nutzer über Beekeeper Studio sagen
„Beekeeper Studio hat meinen alten SQL-Workflow komplett ersetzt. Es ist schnell, intuitiv und macht die Arbeit mit Datenbanken wieder zum Vergnügen.“
„Ich habe viele Datenbank-GUIs ausprobiert, aber Beekeeper trifft genau die richtige Balance zwischen Funktionsumfang und Einfachheit. Es funktioniert einfach.“