Announcement

Collapse
No announcement yet.

Ausgelesene Datensätze einer DB per Java Appliaktion als HTML-Seiten darstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ausgelesene Datensätze einer DB per Java Appliaktion als HTML-Seiten darstellen

    Hallo,
    ich benötige dringend Hilfe.
    Ich muß eine Access Db mittels Java Applikation auslesen (kein Problem)und pro Datensatz mehrere formatierte statische HTML-Seiten erstellen (großes Problem).
    Die HTML-Seiten sollen wenn möglich automatisch miteinander verlinkt werden.
    Auch sollen CSS eingebunden werden.
    Sollte jemand eine Idee zur Lösung dieses Problems haben, bin ich für jeden Tip dankbar.
    Tausend Dank im voraus

  • #2
    Schau dir doch mal JSP (Java Server Pages) an

    Comment


    • #3
      Danke für den Tip, allerdings komm ich damit nicht weiter.
      Die HTML-Seiten sollen von der Datenbank abgekoppelt und als eine Art Lexikon auf eine CD-ROm gebrannt werden.
      Wenn du mir da weiterhelfen kannst, wäre ich dir sehr dankbar

      Comment


      • #4
        Was ist daran das Problem? Setz Dich mit einem Webdesigner zusammen, der "Templates" erstellt, also HTML-Dateien fuer die Anzeige der Daten, vielleicht auch noch eine HTML-Datei fuer den Index - beides natuerlich leer - die Ankopplung an die DB uebernimmst ja Du.<p>
        Nun, wenn der HTML-Teil erledigt ist (mitsamt StyleSheets), dann schreibst Du ein Java-Programm, welches einfach saemtliche Datensaetze abklappert und fuer jeden einzelnen die vorbereiteten Templates nimmt, an den "Platzhalterstellen" die Daten einfuegt und alles als *.html-Datei speichert. Gleichzeitig pflegst Du auch den Index.<p>
        "Automatisch untereinander verlinken" erfordert natuerlich einen Algorithmus. Da wird wohl eine dynamische Datenstruktur wie eine Liste Sinn machen, und damit Links nicht ins Leere zeigen, solltest Du in einem ersten Durchlauf durch alle Access-Daten schonmal die Verkettungen sowie die Filenamen aufbauen, in einem zweiten Durchlauf dann mit dem Template-Ersetzen die Dateien schreiben (dann hast Du ja die Links bzw weisst, wo es keine "Weiter"-Links mehr gibt).<p>
        Klar ist das ein gewisses Mass an Arbeit, aber mehr kann ich Dir leider nicht helfen, weil ich die Randbedingungen Deines Projektes nicht kenn.<p>
        Gruss & frohe Ostern, Marc

        Comment


        • #5
          Hallo Marco,
          das grundsätzliche Problem besteht darin, das ich ein Java-Anfänger bin.
          Ich muß im Rahmen meiner Ausbildung ein 8 wöchiges Projekt in einer Institution durchführen und es hat sich erst während dieser Zeit herausgestellt, das mit Java gearbeitet werden soll.
          Ich habe noch vier Wochen Zeit das Programm zu entwickeln und bin jetzt natürlich auf der Suche nach Informationen.
          Leider habe ich bisher kaum etwas zu genau dieser Thematik gefunden, da sich alles auf Applets, Servlets oder JSP bezieht (hab in den ersten vier Wochen schon einiges gelernt, leider noch nicht genug).

          Im Projekt selber sollen aus einer DB Datensätze bezüglich biologischer Erreger, als eine Art Nachschlagewerk auf CD-ROM, diese statischen HTML-Seiten erstellt werden.
          Ich bin soweit, das ich die Datensätze auslesen, und als eine unformatierte HTML-Seite darstellen kann.
          Als nächstes mach ich mich an die Schleife für die Seitenerstellung.

          Ich bin dir sehr dankbar für den "Ablaufplan", da ich jetzt besser weiß, was ich mir noch aneignen muß und wie ich weiter vorgehen kann.
          Sollte es dich nicht abschrecken das ich eine Anfängerin bin, wäre ich sehr froh wenn du mir weiterhin sagen könntest wo ich an Informationen komme, wie z.B. Templates eingebunden werden.
          Ich denke der Algorhitmus bleibt erstmal aussen vor.

          Ganz lieben Dank noch.

          Gruß und schöne Feiertage
          Annett

          Comment


          • #6
            Ähm - ich bin mir nicht sicher, ob zum Beispiel Servlets bzw. JSP wirklich die Sachen sind, die du benötigst.
            Ich denke, es kommt auch stark drauf an, wie viele HTML-Seiten zu benötigst. Wenn es WIRKLICH viele (>100) sind, dann würde ich persönlich eher empfehlen, eine Java-App zu schreiben, die dir die Templates einließt, und in der du dann eben mittels Methoden den zusätzlichen HTML-Code reinschreibst und das ganze wiederum in irgendeine Datei ausgibst (Berichtigung erlaubt ). Ok, im Grunde ist das nicht sooo anders als JSP, aber ich denke, damit ist eine Stapelverarbeitung eher möglich (weil ich mich frage, wie man den code der statischen HTML-Seiten den bekommen soll, ohne diese wirklich auszuführen (bei 100 ein bisschen mühselig!?).
            Allerdings hab ich auch keine Ahnung, wie weit du dich mit Input/Output in Java auskennst und wie viel Content in die Seiten eingefügt werden soll

            Comment


            • #7
              Vier Wochen reichen aus, um die Aufgabe zu lösen, keine Panik. Denn Deine Applikation muss nicht einmal eine grafische Oberflaeche haben, der Ablauf ist relativ einfach umschrieben, und Du hast damit genug Zeit, das ganze mit ein bissel Dokumentation zu versehen, damit Deine Nachwelt damit auch etwas anfangen kann.<p>
              Du schreibst, dass Du soweit bist, dass Du ALLE Datenbank-Informationen in eine "unformatierte" HTML-Seite packen kannst. Das heisst, dass Du entweder keine Binaerdaten wie Bilder und Sounds in der Datenbank hast, oder dass Du diese auch schon in einzelne Dateien extrahieren kannst (ist auch nicht weiter wild, nur eben nicht ganz so einfach wie simplen Text oder Zahlen aus einer Datenbank lesen).<p>
              Ok, nun geht es darum, dass Du Dir erst einmal ueberlegst, in welcher Reihenfolge die HTML-Seiten erstellt werden (vielleicht als alphabetische Liste von den Erregern, jeder Erreger auf einer extra Seite - dies waere eine einfache Verkettung aller Seiten mit Vorgaenger-Nachfolger sowie eine zusaetzliche Uebersichtsseite. Vielleicht aber auch nach irgendwelchen Gruppen eingeteilt: biologische Kampfstoffe/ausgerottete Krankheiten/aktuelle Plagen der Menschheit - damit haettest Du eine tiefere Verzweigung). Nebenbei waer es von Vorteil, wenn Du eine HTML-Seite einmal "per Hand" erstellst (meinswegen auch mit einem Webdesign-Tool, oder jemand macht es fuer Dich), so dass Du eine Idee hast, wie die Vorlage fuer die einzelnen Seiten auszusehen hat.<p>
              Der von mir erwaehnte "Template"-Mechanismus ist die Idee, in der "handgefertigten" Vorlage bestimmte Platzhalter zu verwenden, z.B. %%ERREGER_NAME%% und %%TOEDLICHKEIT%% oder so, die Du ueberall dort verwendest, wo spaeter auf den generierten Seiten die Informationen aus der Datenbank stehen sollen. Das Suchen & Ersetzen ist zwar in Java nicht SO einfach zu loesen wie in anderen Sprachen (es sei denn, Du kannst JDK 1.4 verwenden, das kann endlich regular expressions, die sind aber fuer Programmieranfaenger auch die Hoelle), aber es geht natuerlich.<p>
              Wenn Du weiter Hilfe brauchst, frag einfach.<p>
              Ciao, Marc

              Comment


              • #8
                Hallo Marco,
                Tausend Dank für deine Rückmeldung.
                Es beruhigt mich enorm einen Ansprechpartner zu haben.
                Die Datensätze sind entweder normale Text- oder Memofelder.
                Ich habe versucht den HTML-Code in einen String (zu kurz), bzw. wegen der Memofelder in einen StringBuffer zu packen.
                Dabei hängt sich allerdings immer der Compiler auf.
                Ich werde das Gefühl nicht los, das ich irgendetwas wesentliches noch nicht weiß oder übersehen habe (das kann doch garn nicht so schwer sein, den "unformatierten" Kopf und Body bekomme ich mit einem normalen String ja hin).
                Als Klassen habe ich erstmal .io, .sql importiert, vielleicht fehlt mir da ja etwas wesentliches.
                Ansonsten benötige ich einerseits max. 5 Seiten pro Erreger, auf denen der Name, die Wirkung, Symptomatik etc. stehen, andererseits 6 Übersichtsseiten, aufgeteilt in einen Einzelstoffindex auf dem alle Errger aufgelistet sind und zusätzlich je eine Seiten, wo die Erreger nach ihrer Art (z.B.) Viren aufgelistet sind.
                Über den Seitenaufbau mache ich mir so keine großen Gedanken, der ist schnell gemacht.
                Ich tüftel jetzt erst einmal weiter an der Schleife um, mehrere HTML-Seiten zu erzeugen (klappt immer noch nicht), und dann die Formatierung einzubringen.

                Schöne Grüße,
                Annett

                Comment


                • #9
                  Hallo Marco,
                  ich habe es endlich geschafft, mehrere HTML-Seiten zu erzeugen (muß ein Brett vorm Kopf gehabt haben!).
                  Kannst du mir sagen, wie ich mich mehrmals auf eien Abfrage beziehn kann?
                  Hab irgendwas über Statement-Objekte auf Connection zu cachen gelesen, allerdings ohne Anleitung.
                  Ich muß jetzt nur noch die HTML-Formatierung einbringen, und kann mir dann noch Gedanken machen über die Verlinkung.
                  In der Verlinkung, zwischen Seiten, die wirklich vorhanden sind, sehe ich noch nicht das Problem, da ich da ja einfach nach der Nummerierung gehen kann.
                  Komplizierter wird es allerdings bei Vorschriften, da nicht jeder Erreger Vorschriften hat.
                  Aber schauen wir mal, liege ja noch hoffentlich gut in der Zeit.

                  Schöne Grüße,
                  Annett

                  Comment


                  • #10
                    Wie meinst Du "mehrmals auf eine Abfrage beziehen"? Normalerweise bekommst Du auf eine Abfrage mehrere Werte (Tupel genannt), und mit rs.next() (rs = ResultSet) schaltest Du Dich praktisch durch. Wenn Du die Werte mehrfach verwenden willst, macht es Sinn, sie einmal auszulesen und in eine eigene Datenstruktur zu holen (irgendeine Liste oder ein Hash oder sowas, Java bietet da ja einiges). Das ResultSet selbst wuerd ich nur einmal durchlaufen, ich stell mir das ResultSet wie eine Bildschirmausgabe vor - ich kann sie zwar stoppen, aber nicht zurueckspulen. Bisher bin ich mit dem "selbst speichern der fuer mich relevanten Daten" in jeder Programmiersprache gut gefahren, vielleicht ist es aber auch Murks, wer weiss.<p>
                    Falls Du eine Anfrage mehrfach stellen willst, solltest Du Dich darauf einstellen, dass Du verschiedene Ergebnismengen bekommst. Vielleicht wurden Daten eingegeben, vielleicht hast Du eine Einschraenkung auf Zeit drin, jedenfalls sollte die Grundregel lauten: Willst Du Ergebnisse mehrfach verwenden, so speichere die Ergebnisse beim ersten Abruf, nicht die SQL-Anweisung. Willst Du eine Anweisung mehrfach ausfuehren und erwartest verschiedene Ergebnisse (bsp. die 10 toedlichsten Krankheiten, und zwischen den beiden Abfragen fuegst Du noch eine Krankheit hinzu), dann lass die SQL-Anweisung ein zweites Mal laufen.<p>
                    Statement-Caching ist eine Programmierpraxis, die vielleicht fuer den Anfang von Java-Programmierung noch nicht so relevant ist: Statement-Objekte kosten naemlich viel Zeit und vor allem Speicher, und darum gilt es, nicht uebermaessig viele davon anzulegen (denn freigegeben wird der Speicher ja erst vom Garbage-Collector). Guido Krueger hat in http://www.javabuch.de/ im Kapitel JDBC einen solchen Cache vorgestellt. Meiner Meinung nach kannst Du fuer ein Praktikum darauf locker verzichten.<p>
                    Gruss, Marc

                    Comment


                    • #11
                      Hallo ,

                      du solltest mit XML und Stylesheets arbeiten, da Du dir ersteinmal Gedanken um die Daten und später per Stylesheet "bunte" Seiten basteln kannst.
                      So musst Du dich nicht gleichzeitig um Design und Datenhaltung kümmern !!!

                      Comment


                      • #12
                        Hi,<br>
                        ich schliesse mich Stefan mit XML & XSLT an, was ich auch für die beste Lösung halte. Da ich aber selbst gerade damit rum experimentiere, muss ich sagen, dass es nicht unbedingt die einfachste Lösung ist, da man doch einige Technologien neu erlenen muss, wenn man bisher Java nur Client-seitig programmiert hat...<br>
                        Aber nach Überwindung der ersten Anlaufschwierigkeiten möchte ich dynamisch mit Servlets generiertes HTML aus Java Objects via XML & XSLT nicht mehr missen, zumal es gute Automatisierungsmöglichkeiten gibt, um von Java Data Objects zu XML zu gelangen.
                        <p>
                        Klau

                        Comment

                        Working...
                        X