DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 313100 - Geändert am: Mittwoch, 9. Februar 2005 - Version: 3.2

Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
313100  (http://support.microsoft.com/kb/313100/EN-US/ ) HOW TO: Get Started with Microsoft JDBC
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt das Herstellen einer Verbindung zu SQL Server 2000 mithilfe des Microsoft SQL Server 2000-Treibers für JDBC.


Hinweis: Detaillierte Anweisungen finden Sie im Installationshandbuch zum Microsoft SQL Server 2000-Treiber für JDBC (Microsoft SQL Server 2000 Driver for JDBC Installation Guide).

Nachdem Sie den Microsoft SQL Server 2000-Treiber für JDBC installiert haben, können Sie auf zwei verschiedene Arten von Ihrem Programm aus eine Verbindung zu Ihrer Datenbank herstellen: Mit einem Verbindungs-URL oder einer JNDI-Datenquelle. Dieser Artikel beschreibt, wie Sie Ihre Datenbankverbindung mit einem Verbindungs-URL konfigurieren und testen können.

Eine Möglichkeit zum Aufbauen einer Verbindung zu einer Datenbank ist die Verwendung des JDBC-Treibermanagers in Verbindung mit der Methode getConnection der Klasse DriverManager. Der einfachste Weg zur Anwendung dieser Methode besteht in der Verwendung eines Zeichenfolgenparameters, der einen URL, einen Benutzernamen und ein Kennwort enthält. Die folgenden Abschnitte dieses Artikels beschreiben das Laden des Microsoft SQL Server 2000-Treibers für JDBC von Ihrem JDBC-Programm aus.

Variable CLASSPATH setzen

Die JAR-Dateien des Microsoft SQL Server 2000-Treibers für JDBC müssen bei Ihnen in der CLASSPATH-Variable aufgelistet sein. Die CLASSPATH-Variable ist die Suchzeichenfolge, mithilfe derer die Java Virtual Machine (JVM) die JDBC-Treiber auf Ihrem Computer ausfindig macht. Falls die Treiber in der CLASSPATH-Variablen nicht aufgelistet sind, wird Ihnen bei dem Versuch, den Treiber zu laden, die folgende Fehlermeldung angezeigt:
java.lang.ClassNotFoundException: com/microsoft/jdbc/sqlserver/SQLServerDriver
Setzen Sie die CLASSPATH-Variable Ihres Systems so, dass sie die folgenden Einträge enthält:
  • \Ihr Installationspfad\Lib\Msbase.jar
  • \Ihr Installationspfad\Lib\Msutil.jar
  • \Ihr Installationspfad\Lib\Mssqlserver.jar
Es folgt ein Besipiel für eine konfigurierte CLASSPATH-Variable:
CLASSPATH=.;c:\Programme\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\Programme\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;c:\Programme\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar

Treiber registrieren

Durch die Registrierung des Treibers erhält der JDBC-Treibermanager die Anweisung, welchen Treiber er laden soll. Wenn Sie einen Treiber mithilfe der Funktion class.forName laden, müssen Sie den Namen des Treibers angeben. Der Name des Microsoft SQL Server 2000-Treibers für JDBC lautet:
com.microsoft.jdbc.sqlserver.SQLServerDriver
Der folgende Beispielcode demonstriert, wie Sie den Treiber registrieren können:
Driver d = (Driver)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
				

URL der Verbindung übergeben

Sie müssen die Informationen zu Ihrer Datenbankverbindung in Form eines Verbindungs-URL übergeben. Nachstehend sehen Sie eine URL-Vorlage für den Microsoft SQL Server 2000-Treiber für JDBC: Ersetzen Sie die darin enthaltenen Werte durch die entsprechenden Werte für Ihre Datenbank:
jdbc:microsoft:sqlserver://servername:1433
Der folgende Beispielcode demonstriert, wie Sie einen Verbindungs-URL angeben können:
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "userName", "password");
				
Bei den Werten für den Servernamen kann es sich um eine IP-Adresse oder einen Hostnamen handeln (unter der Voraussetzung, dass Ihr Netzwerk Hostnamen zu IP-Adressen auflösen kann). Ob dies der Fall ist, können Sie testen, indem Sie den Hostnamen anpingen und überprüfen, ob Sie eine Antwort mit der richtigen IP-Adresse erhalten.

Der numerische Wert nach dem Servernamen bezeichnet den Port, den die Datenbank abhört. Bei den weiter oben in diesem Artikel aufgelisteten Werten handelt es sich um Standardbeispielwerte. Achten Sie darauf, die Nummer des Ports anzugeben, der von Ihrer Datenbank verwendet wird.

Ein vollständige Liste der Verbindungs-URL-Parameter finden Sie in der HTML-Hilfe zum Microsoft SQL Server 2000-Treiber für JDBC oder im Online-Handbuch. Siehe hierzu den Abschnitt "Connection String Properties" (Eigenschaften der Verbindungszeichenfolge).

Beispielcode zum Testen der Verbindung

Mit dem folgenden Beispielcode wird versucht, eine Verbindung zu der Datenbank aufzubauen und den Datenbanknamen, die Version der Datenbank und die verfügbaren Kataloge anzeigen zu lassen. Ersetzen Sie die Werte für die Servereigenschaften durch die entsprechenden Werte für Ihren Server.
import java.*;
public class Connect{
     private java.sql.Connection  con = null;
     private final String url = "jdbc:microsoft:sqlserver://";
     private final String serverName= "localhost";
     private final String portNumber = "1433";
     private final String databaseName= "pubs";
     private final String userName = "user";
     private final String password = "password";
     // Informs the driver to use server a side-cursor, 
     // which permits more than one active statement 
     // on a connection.
     private final String selectMethod = "cursor"; 
     
     // Constructor
     public Connect(){}
     
     private String getConnectionUrl(){
          return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
     }
     
     private java.sql.Connection getConnection(){
          try{
               Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
               con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
               if(con!=null) System.out.println("Connection Successful!");
          }catch(Exception e){
               e.printStackTrace();
               System.out.println("Error Trace in getConnection() : " + e.getMessage());
         }
          return con;
      }

     /*
          Display the driver properties, database details 
     */ 

     public void displayDbProperties(){
          java.sql.DatabaseMetaData dm = null;
          java.sql.ResultSet rs = null;
          try{
               con= this.getConnection();
               if(con!=null){
                    dm = con.getMetaData();
                    System.out.println("Driver Information");
                    System.out.println("\tDriver Name: "+ dm.getDriverName());
                    System.out.println("\tDriver Version: "+ dm.getDriverVersion ());
                    System.out.println("\nDatabase Information ");
                    System.out.println("\tDatabase Name: "+ dm.getDatabaseProductName());
                    System.out.println("\tDatabase Version: "+ dm.getDatabaseProductVersion());
                    System.out.println("Avalilable Catalogs ");
                    rs = dm.getCatalogs();
                    while(rs.next()){
                         System.out.println("\tcatalog: "+ rs.getString(1));
                    } 
                    rs.close();
                    rs = null;
                    closeConnection();
               }else System.out.println("Error: No active Connection");
          }catch(Exception e){
               e.printStackTrace();
          }
          dm=null;
     }     
     
     private void closeConnection(){
          try{
               if(con!=null)
                    con.close();
               con=null;
          }catch(Exception e){
               e.printStackTrace();
          }
     }
     public static void main(String[] args) throws Exception
       {
          Connect myDbTest = new Connect();
          myDbTest.displayDbProperties();
       }
}

				
Die Ausgabe müsste etwa folgendermaßen aussehen, wenn der Code erfolgreich ausgeführt werden konnte:
Connection Successful!
Driver Information
        Driver Name: SQLServer
        Driver Version: 2.2.0022

Database Information
        Database Name: Microsoft SQL Server
        Database Version: Microsoft SQL Server  2000 - 8.00.384 (Intel X86)
        May 23 2001 00:02:52
        Copyright (c) 1988-2000 Microsoft Corporation
        Desktop Engine on Windows NT 5.1 (Build 2600: )

Avalilable Catalogs
        catalog: master
        catalog: msdb
        catalog: pubs
        catalog: tempdb
					

Grundlegende Problembehandlung für Verbindungen

Die folgenden Fehlermeldungen können angezeigt werden, wenn Sie versuchen, eine Verbindung zu Ihrem SQL-Server herzustellen:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer] Fehler bei der Anmeldung für den Benutzer 'Benutzer'. Ursache: Keiner vertrauten SQL Server-Verbindung zugeordnet.
Diese Fehlermeldung wird angezeigt, wenn als SQL Server 2000-Authentifizierungsmodus die Windows-Authentifizierung festgelegt ist. Der Microsoft SQL Server 2000-Treiber für JDBC unterstützt den Aufbau einer Verbindung mithilfe der Windows NT-Authentifizierung nicht. Sie müssen als Authentifizierungsmodus für Ihren SQL-Server den gemischten Modus festlegen, der sowohl die Windows-Authentifizierung als auch die SQL Server-Authentifizierung gestattet.
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]This version of the JDBC driver only supports Microsoft SQL Server 2000 (Diese Version des JDBC-Treibers unterstützt nur Microsoft SQL Server 2000). You can either upgrade to SQL Server 2000 or possibly locate another version of the driver (Sie können entweder auf SQL Server 2000 aktualisieren oder möglicherweise eine andere Version des Treibers finden).
Diese Fehlermeldung wird angezeigt, wenn Sie versuchen, eine Verbindung zu einer SQL Server-Version aufzubauen, die älter ist als SQL Server 2000. Der Microsoft SQL Server 2000-Treiber für JDBC unterstützt nur Verbindungen zu SQL Server 2000.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Driver for JDBC
  • Microsoft SQL Server 2000 64-Bit Edition
  • Microsoft SQL Server 2000 Standard Edition
Keywords: 
kbhowtomaster KB313100
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store
Folgen Sie uns: