🧚 Hör mal! Beekeeper Studio ist eine schnelle, moderne und quelloffene Datenbank-GUI Download
23. September 2024 Von Matthew Rathbone

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 Instanz SQLExpress auf dem Server 192.168.1.100 über Port 1433.
  • databaseName=MyDatabase – Verbindung zur Datenbank mit dem Namen MyDatabase.
  • user=myUsername und password=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.

Die Linux-Version von Beekeeper hat 100% des Funktionsumfangs, ohne Abstriche und ohne Kompromisse.

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.“
— Alex K., Datenbankentwickler
★★★★★
„Ich habe viele Datenbank-GUIs ausprobiert, aber Beekeeper trifft genau die richtige Balance zwischen Funktionsumfang und Einfachheit. Es funktioniert einfach.“
— Sarah M., Full-Stack-Entwicklerin

Bereit, deinen SQL-Workflow zu verbessern?

download Kostenlos herunterladen