Anzeige:
Ergebnis 1 bis 14 von 14

Thema: frage

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.06.2002
    Beiträge
    24

    frage

    hiho all.

    ICh möchte in java ein programm schreiben, mit dem ich auf eine oracle Datenabnk zugreifen kann und sachen in eine tabelle eintragen kann. zum programieren verwende ich den JDeveloper. wenn ich jetzt da eine neue Application erstell, erstellt mir der jdeveloper 2 files. eins das application1.java heist und eins das frame1.java heist, also für die oberfläche. jetzt meine frage: muss ich den code um auf die datenbank zuzugreifen in dem frame1.java oder in dem application1.java stehen?

    und noch eine frage: immo greife ich mit java über einen odbv treiber auf die daten bank zu. geht das auch direkt ohne odbc?

    ich muss noch dazu sagen, das noch so gut wie keine ahnung von java habe

    mfg
    Chirs

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Hi!

    Ich kann den JDeveloper nicht und weiß darum nicht, wofür dort welche Klasse vorgesehen ist, aber du solltes in Teilen der GUI, in deinem Fall dem Frame, keine Funktionalität implementieren, die nichts mit Anzeige oder Eingabe zu tun hat.

    Die UI sollte von der Funkionalität der Applikation getrennt sein, soweit das möglich ist.

    Nur mal so zum Ausprobieren kannst du es sicher in der Applikationsklasse machen, besser wäre es, überhaupt ein eigenes Modul zu machen, dass in der Applikation nur benutzt wird.

    Zur zweiten Frage:
    Leider hält sich mein Wissen bezüglich Datenbanken unter Java auch in Grenzen, aber wenn es einen direkten Java "Treiber" für deine DB gibt, kann man den natürlich auch verwenden.
    Die Applikation bzw. dein Datenbankmodul wird dann halt an diese Datenbank gebunden, was bei Verwendung eine Schnittstelle wie JDBC nicht so stark ausfällt.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.06.2002
    Beiträge
    24
    hiho
    erst mal danke für diene antwort.

    aber wie kann ich dann von dem Application1. java aud z.B. Testfelder in dem Frame zugreifen ? also so das ich TEst von den Felder einlesen, bzw in den feldern ausgeben kann ?


    mfg
    Chris

  4. #4
    Registrierter Benutzer
    Registriert seit
    03.06.2002
    Beiträge
    24
    und könntest du mir bitte ein paar sachen aus dem unten stehen code erklären ?
    vielen DAnk

    package mypackage1;
    import javax.swing.JFrame;
    import java.awt.Dimension;
    import javax.swing.JEditorPane;
    import java.awt.Rectangle;

    public class Frame1 extends JFrame
    {
    JEditorPane jEditorPane1 = new JEditorPane();

    public Frame1()
    {
    try <--------------- das
    {
    jbInit();
    }
    catch(Exception e) <--------------- das
    {
    e.printStackTrace(); <--------------- das



    }

    }

    private void jbInit() throws Exception <--------------- das throws
    {
    this.getContentPane().setLayout(null);
    this.setSize(new Dimension(400, 300));
    this.setTitle("Test");
    jEditorPane1.setText("jEditorPane1");
    jEditorPane1.setBounds(new Rectangle(20, 15, 90, 50));
    this.getContentPane().add(jEditorPane1, null);
    }
    public static void main(String args[])
    {


    }
    }

  5. #5
    Registrierter Benutzer
    Registriert seit
    26.05.2001
    Beiträge
    43
    hi ,

    das try :

    heist probiere also probiere das was in der geschweiften klammer steht

    das catch:

    das catch heist wenn bei try eine exception auftritt fang diese auf un führe den code in der geschweiften klammer aus.


    eine exeception ist sozusagen eine fehlermeldung (Ausnahmetyp).

    printStackTrace:

    druckt einen Auszug aus dem LaufzeitStack.

    throws execption:

    heist soviel wie wirft einen Ausnahmetyp der mit catch gefangen werden muß.



    ich hoffe das hilft dir ein bisschen.
    CU - Stranger :)

  6. #6
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von C_h_r_i_s

    aber wie kann ich dann von dem Application1. java aud z.B. Testfelder in dem Frame zugreifen ? also so das ich TEst von den Felder einlesen, bzw in den feldern ausgeben kann ?
    In dem du in deiner Frame Klasse entsprechende Methoden einbaust, die dann die Inhalter der Frameelemente ändern oder zurückliefern.

    Du kannst es auch umgekehrt machen, also das der Frame sich die nötigen Werte aus den anderen Klassen holt und bei speziellen Events, zb Klick auf OK, diese Werten in die Datenklassen zurückschreibt.

    Letzters wird im Document View Model gemacht, da arbeitet der View mit den Daten im Document. die Application eben falls.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  7. #7
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von Stranger
    hi ,

    das try :

    heist probiere also probiere das was in der geschweiften klammer steht
    Dazu noch eine Ergänzung.
    Wenn in einem try{} Block mehr als ein Statement steht, wird der Block nur so weit ausgeführt, bis eines der Statements eine Exception wirft.



    das catch:

    das catch heist wenn bei try eine exception auftritt fang diese auf un führe den code in der geschweiften klammer aus.
    Man kann auch mehrere catch Blöcke hintereinander haben, es wird der rste Block genommen, der zutrifft:

    Beispiel:
    Code:
    try {
        new FileInputStream("test.dat");
    } catch (FileNotFoundException e) {
    } catch  (IOException e) {
    }
    FileNotFoundException ist eine der Möglichen Execptions die der FileInputStream Konstruktor werfen kann.
    Aber alle sind IOExceptions, das heißt, sollte es keine FileNotFoundException sein, wird der zweite Block Akitv.

    Wäre die Reihenfolge umgekehrt, würde immer nur die allgemeinere Regel aktiv.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  8. #8
    Registrierter Benutzer
    Registriert seit
    03.06.2002
    Beiträge
    24
    also ich hab dem Frame folgendes hinzugefügt

    public void setTXT (String test)
    {
    jEditorPane1.setText(test);
    }

    des is doch richtig oder ?

    aber wie greif i jetzt aus der Applicatgfion1 draf zu ?

    Frame1.setTXT geth irgendwie net


    mei is des kompliziert..

    mfg
    Chris

  9. #9
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von C_h_r_i_s
    also ich hab dem Frame folgendes hinzugefügt

    public void setTXT (String test)
    {
    jEditorPane1.setText(test);
    }

    des is doch richtig oder ?

    Ja, das passt so.


    aber wie greif i jetzt aus der Applicatgfion1 draf zu ?

    Frame1.setTXT geth irgendwie net
    Hmm, ist Frame1 der Name der Klasse, oder der Instanzvariable?
    Da das File so heißt nehm ich mal an es ist die Klasse.

    Dann wird irgendwo so etwas stehen:
    Code:
    Frame1 frame = new Frame1();
    frame ist da die Instanzvariable von Frame1.
    Code:
    frame.setText("anda_skoa rules");
    sollte gehen


    mei is des kompliziert..

    So kompliziert ist das nicht.
    Am Anfang ein bischen ungewohnt, wenn man noch kein OOP gemacht hat.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  10. #10
    Registrierter Benutzer
    Registriert seit
    03.06.2002
    Beiträge
    24
    thx a lot.

    mal ne andere frage.

    wenn ich in einer JSP eine Variable definier z.B. String color = "red";

    und ich will den inhalt dann in html verwenden, also z.B.
    <Body bgcolor ="color">

    wie muss ich das schreiben, das der den inhalt der variablen nimmt?
    weil so wie oben gehts net net so worklich. genausowenig wie
    <Body bgcolor ='color'>
    <Body bgcolor = color>


    mfg
    CHris

  11. #11
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Mit JSP hab ich noch nix gemacht, sorry.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  12. #12
    Registrierter Benutzer
    Registriert seit
    03.06.2002
    Beiträge
    24
    ok. schade. aber des is net sooo wichtig. kann man ja auch anders machen.

    soory, wenn ich andauernd mit fragen bomadier, aber da is scho die nexte
    noch mal zu datenbanken

    also bau ich ne verbindung zur datenbank auf:

    Class.forName( sDbDrv );
    Connection cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
    java.sql.Statement st = cn.createStatement();
    ResultSet rs = st.executeQuery( sSql );

    mit der letzten zeile wird eine querry ausgeführt und in REsultset "gespeicher"
    wenn ich jetzt aber etwas in die DB einfügen will, geht des ja so net.
    jetzt hab ich einwenig rumgesucht und den befehlt "st.executeUpdate" gefunden, der wie ich gelsen, zum einfügen von sachen in die DB da is.

    jetztm ach ich:

    st.exectuteUpdate(INSERT INTO bla ('Name") VALUES ('bla');

    aber dann kommt als fehlermeldung: keyword select not found... HÄÄÄÄÄÄÄÄÄ?
    aber select braucht man ja nur bei queries......... oder is des der falsche befehl um was in eine DB einzufügen? wobei ich aber nicht anderes gefunden hab


    scho mal danke für deine hilfe

    mfg
    Chirs

  13. #13
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    HI!

    Mach dir wegen der Fragen keine Sorgen, dazu ist das Forum ja da

    Ich hab leider mit Datenbanke nicht so viel Erfahrung, das haben immer andere Leute gemacht, wenn ich bei sowas im Team mitgearbeitet habe.
    Ich hab immer Netzwerksachen gemacht.

    Vielleicht hilft dir das JDBC Tutorial von SUN:
    http://java.sun.com/docs/books/tutorial/jdbc/

    Die SUN Java Tutorials sind normalerweise ziemlich gut.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  14. #14
    Registrierter Benutzer
    Registriert seit
    23.07.2002
    Ort
    Hamburg
    Beiträge
    12
    also mit executeUpdate funktioniert das generell.
    Hier wird halt kein ResultSet zurückgegeben, was mach ja bei einem Insert eh nicht hat.. ich denke, du bist hier mit den "" etwas durcheinander gekommen.
    dein Insert statement ist ja ein String der der Funktion übergeben wird, und _muss_ daher in " " stehen.

    Ansonsten zu deiner JSP Frage, müsste das ganze im so funktionieren
    <font color="<% write(color); %>">

    Oder ähnlich.. schon über ein jahr her das ich in Java geproggt hab..

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •