Zum Inhalt springen

java programm erklärung


waterboy187

Empfohlene Beiträge

hi,

kenn mich noch nich so richtig mit java aus.

könnt ihr mir vielleicht erklären was die einzelnen zeilen des programms machen?


package dbapp;

import java.awt.*;

import java.awt.event.*;

import java.sql.*;

import javax.swing.*;

import java.util.Vector;

/**

 *

 * @author nt

 */

public class Main extends Frame implements ActionListener {


    /** Creates a new instance of Main */

    TextArea data;

    JTable tab;

    Vector rows;

    public Main() {

        super("DBApp");

        WindowListener wl = new WindowAdapter() {

            public void windowClosing(WindowEvent e) {

                System.exit(0);

            }

        };

        addWindowListener(wl);

        data = new TextArea();

        Button holen = new Button("Daten auslesen");

        holen.addActionListener(this);

        rows = new Vector();

        tab = new JTable();

        JScrollPane jp = new JScrollPane(tab);

        Vector names = new Vector();

        names.addElement("Spalte1");

        names.addElement("Spalte2");

        names.addElement("Spalte3");

        add("Center", data);

        add("South", holen);

        setSize(400, 400);

        setVisible(true);

    }


    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        Main m = new Main();

    }

    public void actionPerformed(ActionEvent e) {

      readDB();

}

    public void readDB() {

          try {

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        }

        catch(ClassNotFoundException ex) { data.append(ex.getMessage()); }

        try {

            Connection c = DriverManager.getConnection("jdbc:odbc:DBANK");//Datenbank ist der name, den wir unter odbc verwaltung bei datenquellname eingaben

            Statement stmnt = c.createStatement();

            ResultSet rs = stmnt.executeQuery("select * from datenbank;"); // from...."name der exel datei"

            ResultSetMetaData rsdata = rs.getMetaData();

            int spalten = rsdata.getColumnCount();

            data.append("a\t|b\t|c\t|\n");

            while(rs.next()) {    // rs.next setz cursor immer auf nächste zeile

                for(int i = 1; i<=spalten; i++) {

                    data.append(String.valueOf(rs.getInt(i)) + "\t|");

                }

                data.append("\n");

            }

        }

        catch(SQLException ex) { data.append(ex.getMessage()); }

Bitte code tags benutzen. //Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

hängst du an einer bestimmten Stelle. Oder verstehst du das ganze Programm nicht?

Wo stammt dieses Beispiel her? Vielleicht steht ja da noch was darüber. Da gibt es vielleicht auch einen Datenbankdump.

Grob gesagt wird ein Fenster erzeugt in das Fenster kommt eine TextArea da werden die Daten aus der Datenbank hineingeschrieben. Dieses passiert aber erst wenn man auf den Button geklickt hat.

Vielleicht noch einen Tipp versuche erstmal etwas Leichteres bevor du dich mich der Anbindung an eine Datenbank beschäftigst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was heisst, "Ihr sollt Euch daran versuchen"? Es wird ja nicht so gewesen sein, dass der Lehrer eines Tages reingekommen ist, gesagt hat "So, wir fangen jetzt mit Java an, hier ist Quellcode, macht was". Und wo hängts? Hier wird keiner Deine Hausaufgaben machen, aber wenn Du konkrete Fragen hast, werden die beantwortet, sofern es einer weiss.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

den bereich check ich nich

public void readDB() {

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}

catch(ClassNotFoundException ex) { data.append(ex.getMessage()); }

try {

Connection c = DriverManager.getConnection("jdbc:odbc:DBANK");//Datenbank ist der name, den wir unter odbc verwaltung bei datenquellname eingaben

Statement stmnt = c.createStatement();

ResultSet rs = stmnt.executeQuery("select * from datenbank;"); // from...."name der exel datei"

ResultSetMetaData rsdata = rs.getMetaData();

int spalten = rsdata.getColumnCount();

data.append("a\t|b\t|c\t|\n");

while(rs.next()) { // rs.next setz cursor immer auf nächste zeile

for(int i = 1; i<=spalten; i++) {

data.append(String.valueOf(rs.getInt(i)) + "\t|");

}

data.append("\n");

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde dir Raten fange mal an Zeile für Zeile durchzugehen und mit Kommentaren versehen. Wenn du an bestimmten Stellen nicht weiter kommst dann nutze mal die API Doc von Sun http://java.sun.com/j2se/1.5.0/docs/api/index.html. Solltest du dann noch nicht weiter kommen kannst du ja hier noch mal nachfragen wenn es an einer bestimmten Stelle nicht weiter geht.

Habt ihr keine Kursunterlagen wo so was drin stehen könnte?

Bitte verwende die Code Tags da kann man Sourcecode besser lesen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

ok, das könntest Du mit den von meinen Vorrednern genannten Quellen zwar gut selbst recherchieren, aber da es ein überschaubarer Bereich ist, hier mal die Erklärung:


public void readDB() {
try {
// Hier wird der benötigte JDBC-Treiber geladen
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ex) {
data.append(ex.getMessage());
}
try {
// Erstellen der Verbindung zur Datenbank DBANK über die JDBC-ODBC-Bridge
Connection c = DriverManager.getConnection("jdbc:odbc:DBANK");//Datenbank ist der name, den wir unter odbc verwaltung bei datenquellname eingaben
// Statement erzeugen, das wir dann auf der Datenbank absetzen können
Statement stmnt = c.createStatement();
// Statement absetzen und Ergebnisse im ResultSet übernehmen
ResultSet rs = stmnt.executeQuery("select * from datenbank;"); // from...."name der exel datei"
// MetaDaten des ResultSets ermitteln
ResultSetMetaData rsdata = rs.getMetaData();
// Anzahl Spalten aus den MetaDaten ermitteln
int spalten = rsdata.getColumnCount();
// data ist ein StringBuffer? Anhängen der Buchstaben a-c, getrennt durch Tab plus ein Zeilenumbruch
data.append("a\t|b\t|c\t|\n");
// Durchlaufen der Ergebnisse und für jede Spalte das Ergebnis ermitteln und an data anhängen. Es handelt sich bei den Werten um int-Values
while(rs.next()) { // rs.next setz cursor immer auf nächste zeile
for(int i = 1; i<=spalten; i++) {
data.append(String.valueOf(rs.getInt(i)) + "\t|");
}
data.append("\n");
[/PHP]

So, und jetzt noch flugs die Quellen gelesen, da steht nämlich noch mehr drin, das Dir weiterhilft, dann passt das.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...