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");
}
}
}