- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Datenbankzugriff vom Modul aus
Hallo Zusammen,
ich mรถchte gerne aus einem Modul heraus auf die an FirstSpirit angeschlossene MySQL Datenbank zugreifen bzw. einfach nur alle Zeilen einer Spalte in einer definierten Tabelle auslesen. Ist es mรถglich, im Modul nicht die Datenbank direkt via JDBC zu befragen, sondern FirstSpirit? In FirstSpirit ist ja bereits alles konfiguriert und hat selbst ein Implementierung zur Abfrage der Datenbank? Da kรถnnte ich die doch nutzen, oder?
Leider habe ich keine entsprechende API hierfรผr gefunden. Potentiell wรคre der QueryAgent geeignet, jedoch sehe ich keine Mรถglichkeit die Abfrage auf eine Tabelle in der Datenbank zu beschrรคnken.
Hat jemand eine Idee? Oder muss ich wirklich eine direkte Verbindung vom Modul zur Datenbank via JDBC aufbauen?
Vielen Dank fรผr Anregungen im Voraus!
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Sebastian,
der von dir beschrieben Weg hat mich ans Ziel gefรผhrt. Vielen Dank!
Hier mein Code:
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.Store.Type;
import de.espirit.firstspirit.access.store.templatestore.Query;
import de.espirit.firstspirit.access.store.templatestore.Schema;
import de.espirit.firstspirit.agency.SpecialistsBroker;
import de.espirit.firstspirit.agency.StoreAgent;
import de.espirit.firstspirit.service.value.ValueService;
import de.espirit.or.EntityList;
import de.espirit.or.Session;
import de.espirit.or.schema.Entity;
...
StoreAgent storeAgent = broker.requestSpecialist(StoreAgent.TYPE);
Store store = storeAgent.getStore(Type.TEMPLATESTORE);
Query query = (Query) store.getStoreElement(16060);
Schema schema = query.getSchema();
Session session = schema.getSession();
EntityList results = session.executeQuery(query.getSelectStatement());
Iterator<Entity> resultsIter = results.iterator();
while (resultsIter.hasNext())
{
Entity element = resultsIter.next();
....
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
In FirstSpirit ist ja bereits alles konfiguriert und hat selbst ein Implementierung zur Abfrage der Datenbank? Da kรถnnte ich die doch nutzen, oder?
auf die Schnelle ein kurzer Abriss (Pseudo-Code) und ein paar Einstiegspunkte.
- Abfrage in FirstSpirit zusammenklicken, die die gewรผnschten Daten liefert.
- Diese Abfrage im Modul holen "Query query = Store#getStoreElement(UID_DER_QUERY))."
- Schema holen (Parent der Query)
- Session (OR-Session) vom Schema holen (Session session = schema.getSession())
- Auf dieser die Query ausfรผhren (Session#executeQuery(query.getSelectStatement())
Gruร
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Sebastian,
der von dir beschrieben Weg hat mich ans Ziel gefรผhrt. Vielen Dank!
Hier mein Code:
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.Store.Type;
import de.espirit.firstspirit.access.store.templatestore.Query;
import de.espirit.firstspirit.access.store.templatestore.Schema;
import de.espirit.firstspirit.agency.SpecialistsBroker;
import de.espirit.firstspirit.agency.StoreAgent;
import de.espirit.firstspirit.service.value.ValueService;
import de.espirit.or.EntityList;
import de.espirit.or.Session;
import de.espirit.or.schema.Entity;
...
StoreAgent storeAgent = broker.requestSpecialist(StoreAgent.TYPE);
Store store = storeAgent.getStore(Type.TEMPLATESTORE);
Query query = (Query) store.getStoreElement(16060);
Schema schema = query.getSchema();
Session session = schema.getSession();
EntityList results = session.executeQuery(query.getSelectStatement());
Iterator<Entity> resultsIter = results.iterator();
while (resultsIter.hasNext())
{
Entity element = resultsIter.next();
....
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Stephan,
danke, dass du deine Lรถsung hier fรผr die Allgemeinheit gepostet hast. Kannst du bitte noch die Nachricht als "richtige Antwort" markieren, damit anderer Forenbenutzer sie leichter finden kรถnnen.
Viele Grรผรe
Thorsten

