Datenbank Abfragen mit EJB

Status
Nicht offen für weitere Antworten.

hunter1977

Mitglied
Hallo,

ich habe folgendes Problem, ich möchte eine Anwendung entwickeln die mit SQL-Statements Daten aus einer Datenbank abfragt, diese verarbeitet und die Daten entweder als PDF oder Excel Datei ausgibt.

Ich weiß leider nicht welche Bean eignet sich am Besten für meine Anwendung? Kann mir da jemand weiter helfen?

1) JSP Seite nimmt Kriterien für die Abfrage entgegen
2) EJB setzt SQL-Statement mit Kriterien ab und bekommt das Ergebnis zurück
3) Verarbeitung der Daten in PDF oder Excel.


Danke Hunter
 

foobar

Top Contributor
Für die Persistenzschicht werden in der J2ee entweder CMP Entity Beans oder BMP Entity Beans verwendet. Der Unterschied ist der, daß du dich bei BMP's selbst um die Kommunikation mit der DB kümmern mußt. Im Gegensatz dazu wird die Persistierung mit CMP's komplett über die Deployment Descriptoren gesteuert und dann vom EJB Container implementiert. Dadurch ist man mit CMP's nicht an ein bestimmtes DBMS gebunden, da die eigentlichen Queries vom EJB Container generiert werden.
 

Bleiglanz

Gesperrter Benutzer
vergiss EJBs in diesem Kontext (es sei denn, deine Query hat tatsächlich sinnvolle "Entitäten" als Rückgabe-Items)
Für

+ reine SELECTS mit komplexer Klausel und Spaltenliste
+ solche, die nur einmal gebraucht werden (typisch für Webanwendungen)
+ solche, die viele Tabellen joinen

macht man Hit and Run, d.h. die reicht man am besten direkt an die DB durch ("Fast Lane Reader"),. der Overhead durch den Einsatz von Enterprise Java Beans steht dann in keinem Verhältnis zum Nutzen....

kann gut in einem Servlet oder einer Hilfsklasse geschehen
 

hunter1977

Mitglied
Naja, das sind schon sehr mächtige Abfragen und ich möchte nicht das Kennwort und Username einer Datenbank in
eine JSP Seite schreiben.

Ich denke ich werde das ganze über eine EJB lösen.

Danke für die Hilfe
Hunter
 

Bleiglanz

Gesperrter Benutzer
schon mal was von Servlets gehört?

schon mal gehört, dass kein Code in jsp's sein soll?

wenn ein einzelner HTTP Request deine Abfrage auslösen soll und es keine Seiteneffekte gibt UND du unbedingt EJB verwendel willst, dann nimm eine stateless Session Bean (local wenn möglich) und gib eine Liste von "Ergebnisobjekten" zurück
 

Bleiglanz

Gesperrter Benutzer
ach ja, schon mal was von DataSource und Connection Pooling gehört

normalerweise brauch man benutzer/kennwort NIE in irgendeiner jsp
 

bellmann29

Aktives Mitglied
Stateless Session Beans sind meiner Meinung nach der beste Weg, wenn Du es unbedingt über einen AppServer machen willst/mußt. Wie es ja schon Bleiglanz empfohlen hat.

@Bleiglanz:
Warum sollten die Beans nur "local" und nicht auch remote die Ergebnismenge zurückgeben? Was ist, wenn der WebServer auf einer anderen Maschine installiert worden ist.
 

Bleiglanz

Gesperrter Benutzer
@bellmann29

ich hab ja geschrieben "wenn möglich"!

remote wärs IMHO totaler Unsinn (ginge aber bei verschiedenen JVMs nicht anders), weil dann das zu sendende Excel oder PDF als byte[] Array durch den ganzen Remote (RMI oder CORBA oder Appserverprotokoll) Marshalling Stack druchgeschwurbelt werden müsste

völlig sinnloser Overhead, ausserdem ist die Erstellung von PDFs oder Excels als Binärdaten keine Aufgabe der Business Logik
 

bellmann29

Aktives Mitglied
@Bleiglanz
Meine Frage (local vs. remote) galt nicht dem PDF-Dokument. Ich dachte an die Liste (Collection, Set) mit den Ergebnissobjekten, die benötigt werden. War wohl ein kleines Mißverständnis.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Daten mit j2ee aus datenbank abfragen Allgemeines EE 8
B Newsletter versenden - Datenbank Design Allgemeines EE 0
E Spring Fileverwaltung in Datenbank oder Logfile? Allgemeines EE 2
L JavaEE Webanwendung - Datenbank-Verbindung aufbauen Allgemeines EE 18
D JSON abspeichern mit gleichen Datenbank Eintrag Allgemeines EE 3
P JSF Wohin kommt die .db Datei der Datenbank? Allgemeines EE 2
B Integrierte Datenbank in Wildfly Server Allgemeines EE 2
B Datenbank Resource wird nicht gefunden Allgemeines EE 1
J JSTree in Web-App: Datenbank-Beziehungen verschwinden nach unbestimmter Zeit Allgemeines EE 4
J JSF Glassfish jdbcRelam und Oracle-Datenbank - WEB9102: Web Login Failed Allgemeines EE 0
C JSF Bestimmte Daten aus der Datenbank anzeigen lassen Allgemeines EE 13
T Strings - Partieller Abgleich mit Datenbank Allgemeines EE 4
D GWT mit Hibernate und Sql Datenbank Allgemeines EE 2
I JSF Userbild in die Datenbank machen? Allgemeines EE 6
R Je nach Benutzer anderes Datenbank-Schema auswählen Allgemeines EE 4
A Anfängerfrage: daten in datenbank speichern Allgemeines EE 8
J XML vs. Datenbank vs. lokale Ordnerstruktur Allgemeines EE 6
J ejb3.0 datenbank problem Allgemeines EE 2
remus JBoss Authentifizierung mit MYSQL-Datenbank Allgemeines EE 4
H Eine Datenbank - 1 Datenmodell - 2 Anwendungsumgebungen Allgemeines EE 2
E JBoss Hibernate Datenbank-Timeout Allgemeines EE 3
T Wie Datenbank und Servlet koppeln? Allgemeines EE 3
G Entity Bean ignoriert Datenbank Allgemeines EE 16
N Warenkorb ohne Datenbank Allgemeines EE 2
M Servlet (Bilder aus Datenbank liefern) läuft nur einige Zeit Allgemeines EE 12
S String escpapen für JavaScript, Datenbank, HTML Allgemeines EE 2
F Datenbank und JSF Allgemeines EE 2
P struts "beliebige motive in der datenbank finden" Allgemeines EE 6
T XML, Beans, Datenbank. Kann mir jemand helfen? Allgemeines EE 5
K [Tomcat 5.5.12+Axis] Datenbank Zugriff Allgemeines EE 2
T Bildfolge in Datenbank Allgemeines EE 2
P EJB3-Standard und dafür geeignetste SQL-Datenbank Allgemeines EE 21
A Tabstopp-getrennte Daten üb. Webformular in Datenbank laden! Allgemeines EE 2
OnDemand EJB Timer abfragen Allgemeines EE 0
H SQL Abfragen in Datenbanktabelle --> in JSP auslesen Allgemeines EE 3
Z HTML-Formulare (Feldinhalt) mit JSP abfragen/verarbeiten Allgemeines EE 7
F Application in HttpServlet abfragen? Allgemeines EE 5
R Struts-Action in JSP abfragen? Allgemeines EE 2
N Datum in Tomcat-Webseite abfragen Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben