Announcement

Collapse
No announcement yet.

Wie kann DB-Connection offen halten.

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

  • Wie kann DB-Connection offen halten.

    Hallo,

    ich habe ein Problem mit meiner Datenbank-Connection (sun jdbcodbc), und bräuche Hilfe.

    Ich habe einen Ordner mit XML-Files, die ich mit Xerces und Sax parse und in eine MS SQL 2000-Datenbank einfüge.

    Ich gebe meinen Klassen jetzt Buchstaben, damit es leichter zu erklären ist.

    Meine Klasse A liest die einzelnen Files ein und gibt sie an Klasse B (SAX Parser, validieren und parsen) weiter. Um an den Content der XML-Files zu gelangen benötige ich Klasse C (ContentHandler). In Klasse C werden die SQL-String "zusammengebaut".

    Ausserdem habe ich noch eine Klasse D (dbConnection) mit den Methoden zum öffnen, schliessen und execute.

    Nun zu meinem Problem:
    Da die Files einzeln von Klasse A an Klasse B übergeben werden und von dort an C, habe ich in Klasse C die Db-Connection geöffnet, übergebe dann meine einzelnen SQL-Strings und schliesse die Db-Connection dann. Dann kommt das nächste File und wieder wird die Datenbank geöffnet.

    Dies führt natürlich zu einer Performanceeinbuße.

    Kann ich irgendwie in Klasse A die DB-Connection öffnen, von Klasse C auf diese zugreifen, und die Db-Connection erst wieder schliessen, wenn alle Dateien geparst sind? Habe es schon irgendwie probiert, jedoch erfolglos. Habe in Büchern, u.ä. keine Anhaltspunkte gefunden. In allen Beispielen wurde die Datenbank gleich wieder geschlossen.

    Über Tipps, auch Codebeispiele, wäre ich sehr dankbar.

    Das ich noch nicht sehr viel Erfahrung mit Java habe, brauche ich glaube ich nicht erwähnen. Das merkt man. Ist wahrscheinlich eine ganz einfache Lösung ;-)

    Danke

    Gruss
    Thorsten

  • #2
    Es gibt ein Beispiel mit einer Klasse Global, die die Connection belieblig lange hält bei http://www.must.de/Jacomp.htm (sicher unter vielen anderen Beispielen)

    Gruß, Christop

    Comment

    Working...
    X