JDBC-Verbindung zu Microsoft SQL Server 2000 in Java

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 5,17 KB

JDBC-Verbindung zu Microsoft SQL Server 2000

Übung 2: Verbindung über den JDBC-Treiber für Microsoft SQL Server 2000.

/* Verbindung über JDBC-Treiber für Microsoft SQL Server 2000 - Übung 2 */

import java.sql.*;

// Klasse Jdbc_sqls3
public class Jdbc_sqls3 {

    private Connection con = null;

    // Konstanten für die Verbindungskette
    private final String url = "jdbc:microsoft:sqlserver://";
    private final String server = "localhost";
    private final String port = "1433";
    private final String db = "pubsSQL";
    private final String user = "sa";
    private final String pass = "Funken";

    /* Das Passwort sollte nicht leicht zu finden sein. Es ist empfehlenswert,
     * es vom Benutzer bei Start der Anwendung abzufragen. */

    /* Verwendung eines serverseitigen Cursors, damit mehr als eine aktive
     * SQL-Anweisung pro Verbindung möglich ist. */
    private final String method = "cursor";

    // MAIN-Methode als Einstiegspunkt des Programms
    public static void main(String[] args) throws Exception {
        Jdbc_sqls3 pruebaJdbc = new Jdbc_sqls3();
        pruebaJdbc.mostrarDatos();
    }

    // Konstruktor
    public Jdbc_sqls3() {
        try {

            // Connection-String
            String url = this.url + server + ":" + port + ";databaseName=" + db + ";selectMethod=" + method + ";";

            System.out.println("\nJDBC SQL Server");
            System.out.println("===============\n");

            // Registrierung des JDBC-Treibers mit dem Class.forName Classloader
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            con = DriverManager.getConnection(url, user, pass);

            // Wenn eine aktive Verbindung besteht
            if (con != null) System.out.println("Verbindung mit " + db + " wurde erfolgreich hergestellt.");
        }

        catch (Exception e) {
            System.out.println("Fehler: Verbindung mit " + db + " fehlgeschlagen.\n");
        }
    }

    // Zeigt Informationen über den Treiber, SQL Server und Datenbankkatalog an
    public void mostrarDatos() {
        DatabaseMetaData dm = null;
        /* Das ResultSet-Interface stellt eine Datenmenge aus einer SQL-Abfrage bereit.
         * Der Cursor steht zunächst vor dem ersten Datensatz; mit resultSet.next()
         * wird durch die Datensätze navigiert. */
        ResultSet rs = null;
        try {
            // Wenn eine aktive Verbindung besteht
            if (con != null) {

                // Informationen zu den verschiedenen Objekten abrufen
                dm = con.getMetaData();
                System.out.println("\nInformationen zum Treiber:\n");
                System.out.println("\tDriver Name: " + dm.getDriverName());
                System.out.println("\tDriver Version: " + dm.getDriverVersion());
                System.out.println("\nInformationen zum SQL Server:\n");
                System.out.println("\tDatabase Name: " + dm.getDatabaseProductName());
                System.out.println("\tDatabase Version: " + dm.getDatabaseProductVersion());
                System.out.println("Verfügbare Katalogdatenbanken:\n");
                rs = dm.getCatalogs();
                // Alle Kataloge der Datenbank ausgeben
                int n = 1;
                while (rs.next()) {
                    /* ResultSet.getString() liefert den Wert der Spalte als String
                     * in der aktuellen Zeile (Spalte über ihre Position referenziert) */
                    System.out.println("\t" + n + "-" + rs.getString(1));
                    n += 1;
                }
                // Ressourcen freigeben
                rs.close();
                rs = null;
                dm = null;
                System.out.println("");

                // Ausführen einer SQL-SELECT-Anweisung
                Statement select = con.createStatement();
                ResultSet nombres = select.executeQuery("SELECT TOP 10 * FROM authors");
                System.out.println("Die ersten 10 Zeilen aus der Tabelle:");
                System.out.println("");
                // System.out.println("\tVorname");
                // System.out.println("");
                int col = nombres.findColumn("au_lname");
                boolean siguiente = nombres.next();
                while (siguiente) {
                    System.out.println("\t" + nombres.getString(col));
                    siguiente = nombres.next();
                }
                System.out.println("");

                // Ressourcen freigeben
                nombres.close();
                select.close();
                cerrarCon();
            }

            // Wenn keine aktive Verbindung besteht
            else System.out.println("Fehler: Keine aktive Verbindung zu " + db + ".\n");
        }

        catch (Exception e) {
            System.out.println("Fehler: Daten können nicht angezeigt werden.\n");
        }
    }

    // Schließen der Verbindung
    private void cerrarCon() {
        try {
            if (con != null)
                con.close();
            con = null;
        }

        catch (Exception e) {
            System.out.println("\nFehler beim Schließen der Verbindung zu " + db + ".\n");
        }
    }

}

Verwandte Einträge: