Standarddatentypen - Beispiel

Diese Beispielanwendung für Microsoft SQL Server JDBC Driver veranschaulicht, wie Werte von SQL Server-Standarddatentypen mithilfe von Abrufmethoden für Resultsets abgerufen und diese Werte mithilfe von Aktualisierungsmethoden für Resultsets aktualisiert werden.

Die Codedatei für dieses Beispiel heißt "basicDT.java" und befindet sich im folgenden Pfad:

<Installationsverzeichnis>\sqljdbc_<Version>\<Sprache>\help\samples\datatypes

Anforderungen

Wenn Sie diese Beispielanwendung ausführen möchten, müssen Sie die Datei sqljdbc.jar oder sqljdbc4.jar in den Klassenpfad aufnehmen. Wenn im Klassenpfad kein Eintrag für sqljdbc.jar oder sqljdbc4.jar vorhanden ist, löst die Beispielanwendung die allgemeine Ausnahme "Klasse nicht gefunden" aus. Sie benötigen darüber hinaus Zugriff auf die SQL Server 2005 AdventureWorks-Beispieldatenbank. Weitere Informationen zum Festlegen des Klassenpfads finden Sie unter Verwenden des JDBC-Treibers.

In der SQL Server 2005 AdventureWorks-Beispieldatenbank müssen Sie außerdem die folgende Tabelle mit den folgenden Beispieldaten erstellen:

CREATE TABLE DataTypesTable 
   (Col1 int IDENTITY, 
    Col2 char,
    Col3 varchar(50), 
    Col4 bit,
    Col5 decimal(18, 2),
    Col6 money,
    Col7 datetime);

INSERT INTO DataTypesTable 
VALUES ('A', 'Some text.', 0, 15.25, 10.00, '01/01/2006 23:59:59.991');

Hinweis

Microsoft SQL Server JDBC Driver, Version 2.0, enthält die Klassenbibliotheksdateien sqljdbc.jar und sqljdbc4.jar für die jeweilige Verwendung mit den bevorzugten JRE (Java Runtime Environment)-Einstellungen. Weitere Informationen zum Auswählen der richtigen JAR-Datei finden Sie unter Systemanforderungen für den JDBC-Treiber.

Beispiel

Der folgende Beispielcode stellt eine Verbindung mit der SQL Server 2005 AdventureWorks-Beispieldatenbank her. Anschließend wird eine einzelne Datenzeile aus der DataTypesTable-Testtabelle abgerufen. Danach wird die benutzerdefinierte displayRow-Methode aufgerufen, um alle im Resultset enthaltenen Daten mithilfe der verschiedenen get<Type>-Methoden der SQLServerResultSet-Klasse anzuzeigen.

Anschließend werden die im Resultset enthaltenen Daten mithilfe der verschiedenen update<Type>-Methoden der SQLServerResultSet-Klasse aktualisiert. Daraufhin wird die updateRow-Methode aufgerufen, um die Daten in der Datenbank zu speichern.

Schließlich werden die im Resultset enthaltenen Daten aktualisiert und erneut die benutzerdefinierte displayRow-Methode aufgerufen, um die im Resultset enthaltenen Daten anzuzeigen.

import java.sql.*;

public class basicDT {

   public static void main(String[] args) {

      // Create a variable for the connection string.
      String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
            "databaseName=AdventureWorks;integratedSecurity=true;";

      // Declare the JDBC objects.
      Connection con = null;
      Statement stmt = null;
      ResultSet rs = null;

      try {
         // Establish the connection.
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
         con = DriverManager.getConnection(connectionUrl);

         // Create and execute an SQL statement that returns some data
         // and display it.
         String SQL = "SELECT * FROM DataTypesTable;";
         stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
         rs = stmt.executeQuery(SQL);
         rs.next();
         displayRow("ORIGINAL DATA", rs);

         // Update the data in the result set.
         rs.updateString(2, "B");
         rs.updateString(3, "Some updated text.");
         rs.updateBoolean(4, true);
         rs.updateDouble(5, 77.89);
         rs.updateDouble(6, 1000.01);
         rs.updateTimestamp(7, new Timestamp(System.currentTimeMillis()));
         rs.updateRow();

         // Get the updated data from the database and display it.
         rs = stmt.executeQuery(SQL);
         rs.next();
         displayRow("UPDATED DATA", rs);
      }

      // Handle any errors that may have occurred.
      catch (Exception e) {
         e.printStackTrace();
      }

      finally {
         if (rs != null) try { rs.close(); } catch(Exception e) {}
         if (stmt != null) try { stmt.close(); } catch(Exception e) {}
         if (con != null) try { con.close(); } catch(Exception e) {}
      }
   }

   private static void displayRow(String title, ResultSet rs) {
      try {
         System.out.println(title);
         System.out.println(rs.getInt(1) + " " +  // SQL integer type.
               rs.getString(2) + " " +            // SQL char type.
               rs.getString(3) + " " +            // SQL varchar type.
               rs.getBoolean(4) + " " +           // SQL bit type.
               rs.getDouble(5) + " " +            // SQL decimal type.
               rs.getDouble(6) + " " +            // SQL money type.
               rs.getTimestamp(7));               // SQL datetime type.
         System.out.println();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

Siehe auch

Andere Ressourcen

Arbeiten mit Datentypen (JDBC)