Previous Contents Next

13   Datenbankanbindung mit JDBC

Inhalt Einführung ·Structured Query Language ·Relationale Datenbanen
Literatur: Die API zur Datenbankanbindung and SQL-Datenbanken gehört zu den sogenannten Enterprise-Klassen, Material findet sich entsprechend in [FFCM99] (Kapitel 2 und Kapitel 18, eine SQL-Superkurzeinführung in Kapitel 8).

Ein fettes Buch zum Thema ist [WFC+99] (da zugehörige online-Material enthält auch ein kleines Tutorial.) Ein Datenbankbeispiel findet sich auch in [Fla97a] (Kapitel 16)

Wir können hier nur sehr oberflächlich auf SQL eingehen, auf der Webseite unseres Kurses sind ein paar weiterführende Informationen aufgelistet.
Einleitung
Treiber
Verbindung
Befehle
Resultate
Beispiel (aus [FFCM99])


import java.sql.*;
public class JDBCSample {
  public static void main(java.lang.String[] args) {
    try {// This is where we load the driver
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    } 
    catch (ClassNotFoundException e) {
      System.out.println("Unable to load Driver Class");
      return;
    }
    try {// access is within a try/catch block.
      Connection con = 
 DriverManager.getConnection("jdbc:odbc:companydb", "", "");
      
      Statement stmt = con.createStatement(); // Create/execute statement
      ResultSet rs = stmt.executeQuery("SELECT FIRST_NAME FROM EMPLOYEES");

      while(rs.next()) {         // Display the SQL results.
        System.out.println(rs.getString("FIRST_NAME"));
      }
      rs.close(); stmt.close(); con.close();  // Freigeben der Rescourcen

    } 
    catch (SQLException se) {
      // Inform user of any SQL errors
      System.out.println("SQL Exception: " + se.getMessage());
      se.printStackTrace(System.out);
    } 
  } 
}



Bei uns
  1. SQL-pakete importieren: import java.sql.*;
  2. postgres- Treiber einbinden:
     try {
         Class.forName("org.postgresql.Driver");
     } catch(java.lang.ClassNotFoundException e) {
         System.err.print("ClassNotFoundException: ");
         System.err.println(e.getMessage());
     }
     
  3. Verbindung zur Datenbank `JavaUeb' herstellen:
     String url = "jdbc:postgresql://sokrates/JavaUeb";
     Connection con;
     con = DriverManager.getConnection(url, "postgres", "");
     
  4. Nach getaner Arbeit die Verbindung schließen: con.close();
SQL + relationale Datenbanken
Datentypen: JDBC ® Javatypen
JDBC Type Java
ARRAY Array
BIGINT long
BINARY byte[]
BIT boolean
BLOB Blob
CHAR String
CLOB Clob
DATE java.sql.Date
DECIMAL java.math.BigDecimal
DISTINCT mapping of underlying type
DOUBLE double
FLOAT double
INTEGER int
JAVA_OBJECT underlying Java-Class
LONGVARBINARY byte[]
LONGVARCHAR Strirg
NULL ?
NUMERIC java.math.BigDecimal
OTHER ?
REAL float
REF Ref
SMALLINT short
STRUCT Struct
TIME java.sql.Time
TIMESTAMP java.sql.Timestamp
TINYINT byte
VARBINARY byte[]
VARCHAR String

Schemamanipulation: Erzeugen
   CREATE [ [  GLOBAL | LOCAL ] TEMPORARY] 
     TABLE <table_name>
    ( { <column_name> { <data_type> | <domain_name>} 
         [<column_size>]
         [<column_constraint>]  ...}
       [DEFAULT <default_value], ..
       [<table_constraint>], ...
       [ ON COMMIT { DELETE | PRESERVE} ROWS ] )
Datenmanipulation
Lesen
Subqueries, Joins, Groups
Join-Beispiele
SQL-code Erkärung
SELECT * FROM BOOKS WHERE PRICE IN SELECT PRICE FROM PRICES Schachtelung in einer Tabelle
SELECT * FROM CUSTOMERS, ORDERS WHERE ORDERS.CUSTOMER_ID = CUSTOMERS.CUSTOMER_ID equi-join, Dot-Syntax
SELECT * FROM CUSTOMERS INNER JOIN ORDERS ON ORDERS.CUSTOMER_ID = CUSTOMERS.CUSTOMER_ID equi-join, JOIN-ON-Syntax
SELECT * FRROM CUSTOMERS LEFT JOIN ORDERS ON CUSTOMERS.CUSTOMER_ID = ORDERS.CUSTOMER_ID Äußerer Join, Primärschlüssel in Tabelle CUSTOMERS

Einfügen
Überschreiben
Löschen
Funktionen
Literatur


July 4, 2000
Previous Contents Next