next Forms - Kurzeinführung
up Backend / Frontend
previous PHP
  Contents   Index

Subsections


Java

Eine kleine DB in Java

Dieses Programms soll Teilnehmer einer Schulungsfirma verwalten können. Schreiben Sie ein Programm, welches aus folgenden Klassen bestehen soll:

Klasse Teilnehmer
Attribute (alle private, Typ String): Name, Vorname, Kurs
Methoden: getName(...), setName(), getVorname(), ....

Klasse Datenausgabe
Methode: printDaten() ... mit System.out.println()
Über diese Methode sollen alle Teilnehmer-Objekte ausgegeben werden.

Klasse T_Verwaltung
Methode: main(...)

Aufgabe:
Kreieren Sie alle Klassen.
Legen Sie in dieser Klasse T_Verwaltung zunächst zwei Objekte der Klasse Teilnehmer an z.B. 'Meier, Kurt' Netzwerk-Administrator und 'Bayer, Astrid' DB-Administrator.
Geben Sie alle Daten aus.
Verändern Sie den Kurs des Teilnehmers Meier.
Geben Sie alle Daten aus.
Eine Lösung:

class Teilnehmer {
     private String name, vorname, kurs;
     public Teilnehmer(String n, String v, String k) {
        this.name = n;
        this.vorname = v;
        this.kurs = k;
     }
      public String getName() {
        return name;
     }
     public void setName(String n) {
        name=n;
     }
     public String getVorName() {
        return vorname;
     }
     public void setVorName(String v) {
        vorname=v;
     }
     public String getKurs() {
        return kurs;
     }
     public void setKurs(String k) {
        kurs=k;
     }
}
class Datenausgabe {
     // Über diese Methode sollen alle Teilnehmer-Objekte ausgegeben werden.
     public static void printDaten(Teilnehmer te) {
        System.out.println("Name: " + te.getName());
        System.out.println("Vorname: " + te.getVorName());
        System.out.println("Kurs: " + te.getKurs());
        System.out.println();
     }
}
class T_Verwaltung {
       public static void main(String[] args) {
          System.out.println("Verwaltung der Teilnehmer einer Schulungsfirma");
          Teilnehmer t1 = new Teilnehmer("Meier","Kurt","Netzwerk-Administrator");
          Teilnehmer t2 = new Teilnehmer("Bayer","Astrid","DB-Administrator");
          Datenausgabe.printDaten(t1);
          Datenausgabe.printDaten(t2);
          System.out.println("");
          System.out.println("Meiser wechselt zum Kurs DB-Administrator");
          System.out.println("");
          t1.setKurs("DB-Administrator");
          Datenausgabe.printDaten(t1);
          Datenausgabe.printDaten(t2);
       }
}


JDBC

JDBC-Treibertypen

Typ 1

JDBC-ODBC-Brücken

Typ 2

Treiber, die nur teilweise in Java programmiert sind. Übersetzen JDBC-Aufrufe an ein Client-Api für Oracle, Sybase, Informix, DB2 ...

Typ 3

Treiber, die einen Java-Client verwenden und über das Netz mit einen Middleware-Server kommunizieren, der ein DB-unabhängiges Protokoll verwendet. Dieser reicht die Client-Anfrage an den DB-Server weiter.
3-Schichten-Modell (flexibel).

Typ 4

Komplett in Java programmierte Treiber, die ein datenbankspezifisches Netzwerkprotokoll für eine bestimmte Datenquelle implementieren, um darüber direkt über einen offenen IP-Port mit der Datenquelle zu kommunizieren, wie z.B. bei Oracles*Net bzw. Net8.
2-Schichten-Modell (nicht für Access).


Thin-Treiber - Oracle

Lade Thin-Treiber von [10]
Anbindung an Oracle, Lade Oracle-JDBC-Type-4-Treiber von [9]
Oracle8i JDBC Drivers for use with JDK 1.2.x,
JDBC-Thin, 100% Java (classes12.zip, 1.5MB).
Die Datei classes12.zip nicht entzippen, sondern in den CLASSPATH einbinden.
set CLASSPATH=$CLASSPATH:.../classes12.zip
Eventuell reicht ein Kopieren des JDBC-Treibers nach $JAVA_HOME/jre/lib/ext. Beispiel:
import java.sql.*;

public class Sql_ORA_thin
{
  public static void main( String args[] )
  {
    try {
      Class.forName( "oracle.jdbc.driver.OracleDriver" );
    }
    catch ( Exception e ) {
      System.out.println( "Fehler bei ODBC-JDBC-Bridge" + e );
      return;
    }
    Connection conn;
    Statement stmt;
    ResultSet rSet;

    try {
      // //// Anpassen
      String url = "jdbc:oracle:thin:@192.168.50.29:1521:testdb29";
      conn = DriverManager.getConnection( url, "Scott", "tiger" );
      stmt = conn.createStatement();
      String sqlQuery = "SELECT ename, empno FROM emp";
      rSet = stmt.executeQuery( sqlQuery );
      // //// 
    }
    catch ( Exception e ) {
      System.out.println( "Fehler bei Datenbankzugriff" + e );
      return;
    }
    try {
    System.out.println ( "EMANE" + "\t" + "EMPNO");
    System.out.println ( "----------------------");
      while ( rSet.next() )
        System.out.println ( rSet.getString(1) + "\t" + rSet.getString(2));

      stmt.close();
      conn.close();
    }
    catch ( Exception e ) {
      System.out.println( "Fehler bei Tabellenabfrage" + e );
      return;
    }
  }
}


ODBC-Treiber - Oracle

Beispiel unter Windows: Eventuell tnsnames.ora anpassen.

ODBC-Treiber laden
Systemsteuerung - Verwaltung - Datenquellen (ODBC)
System-DSN - Hinzufügen: MS ODBC-Treiber für Oracle
Datenquellenname: testdb29 (kann beliebig gewählt werden)
Beschreibung: bla
Benutzername: scott
Server: testdb29 (wie in tnsnames.ora)
Beispiel:

import java.sql.*;

public class Sql
{
  public static void main( String args[] )
  {
    try {
      Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
    }
    catch ( Exception e ) {
      System.out.println( "Fehler bei ODBC-JDBC-Bridge" + e );
      return;
    }
    Connection conn;
    Statement stmt;
    ResultSet rSet;
    try {
      // //// Anpassen
      String url = "jdbc:odbc:testdb29";
      conn = DriverManager.getConnection( url, "scott", "tiger" );
      stmt = conn.createStatement();
      String sqlQuery = "SELECT * FROM salgrade";
      rSet = stmt.executeQuery( sqlQuery );
      // //// 
    }
    catch ( Exception e ) {
      System.out.println( "Fehler bei Datenbankzugriff" + e );
      return;
    }
    try {
      while ( rSet.next() )
        System.out.println ( rSet.getString(1) + "\t" + rSet.getString(2));
      stmt.close();
      conn.close();
    }
    catch ( Exception e ) {
      System.out.println( "Fehler bei Tabellenabfrage" + e );
      return;
    }
  }
}

ODBC-Treiber - mySQL

Beispiel unter Windows
mySQL-ODBC-Treiber von [4] laden.
ODBC-Treiber installieren
Systemsteuerung - Verwaltung - Datenquellen (ODBC)
System-DSN - Hinzufügen mySQL-ODBC-Treiber
Data Source Name: myodbc3-test (kann beliebig gewählt werden)
Description: MySQL ODBC 3.51 TEST DSN
Host/Server: localhost
Database Name: mysql
User: root
Password: pinguin
Port: 3306
SQL-Command: ( select * from user )
Test Data Soucre

Beispiel

import java.sql.*;

public class MySql
{
  public static void main( String args[] )
  {
    try { Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );}
    catch ( Exception e ) {
      System.out.println( "Fehler bei ODBC-JDBC-Bridge" + e );
      return;
    }
    Connection conn;
    Statement stmt;
    ResultSet rSet;
    try {
      // //// Anpassen
      String url = "jdbc:odbc:meiMySQL";
      conn = DriverManager.getConnection( url, "root", "pinguin" );
      stmt = conn.createStatement();
      String sqlQuery = "SELECT * FROM mysql.user";
      rSet = stmt.executeQuery( sqlQuery );
      // //// 
    }
    catch ( Exception e ) {
      System.out.println( "Fehler bei Datenbankzugriff" + e );
      return;
    }
    try {
      while ( rSet.next() )
        System.out.println ( rSet.getString(1) + "\t" + rSet.getString(2));
      stmt.close();
      conn.close();
    }
    catch ( Exception e ) {
      System.out.println( "Fehler bei Tabellenabfrage" + e );
      return;
    }
  }
}

next Forms - Kurzeinführung
up Backend / Frontend
previous PHP
  Contents   Index


Stefan Hietel dama.go GmbH, Robert Warnke http://rowa.giso.de