Search the FirstSpirit Knowledge Base
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!
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();
....
}
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.
Gruß
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();
....
}
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