
Připojení dvou aplikací do jedné mysql databáze
Hoj,
potřebuji poradit.
Mám 2 aplikace:
a) Web app v hibernate
b) Destkop v javě
Aplikace a čte z databáze (pokaždé když někdo otevře stránku) a aplikace b do té databáze zapisuje (max 2x za den).
Jedná se o jednu tabulku do které obě aplikace přistupují. Obě přes stejný účet v mysql (přes roota).
Jak to vyřešit? Nemáte zkušenosti?
Díky za radu.
Normálně se to dělá tak, že vytvoříš svoje backendové rozhraní pro práci s daty (třeba jako REST controllery) a toto rozhraní pak konzumuješ ve frontendových aplikacích.
My nevíme, jak v tomcatové aplikaci pracuješ s tou tabulkou, jak tam řešíš transakce (jestli tam třeba tu tabulku nezamykáš).
Používám hibernate.
O zamykání nic nevím, tudíž by být žádné nemělo.
Standardní uložení probíhá pomocí:
Vytvoření továrny při startu aplikace):
Následný save do databáze:
Název tabulek a dat se může zde lišit, ve skutečné aplikaci je vše OK
persistence je:
Co je to info_messageDao?
EDIT: Mas to hodne zmatene napsane. Proc vytvaris EntityManager sam? Jake vlastne pouzivas frameworky? Rikal jsi, ze ta hibernate aplikace jenom cte, ted tady vidim zapis.
Interface, přes který se ukládá objekt do db.
Dědí od třídy @MappedSuperclass.
Myslíš že bude problém v tom?
V hibernate mas mit jenom entitu, kterou chces ulozit. Je to trida, treba jako tato:
pak uz volas jenom em.persist(employee). Rizeni transkaci je dobre sverit nejake knihovne, treba Springu, at muzes pouzit anotaci @Transactional a nemusis pak furt psat begin, comit a rollback, kdyz exception.
O tom vím, děkuji, spring jsem nechtěl. O tom taky vím.
@Transactional používám.
EDIT: používám hibernate a JPA. Nepoužívám nic dalšího, protože nechci. Vím že to je.
EntityManager vytvarim z entity factory sám, protože je to ochrana proti vláknový práci.
Vím že to vypadá hrozně, ale teprve se to učím, pak přejdu výš na lepší knihovny.
Tohle asi ale nebude problém s DB, nebo myslíš že jo?
Problem bude v jave ne v DB. Dej sem cely kod, jak pracujes s daty...
Objekt, který ukládám do DB (+ dědění od základního BASEOBJECT):
Konkrétní uložení:
Kdy emf vytvářím při startu serveru takhle:
Generické DAO (v interfacu jsou jen hlavičky metod):
Konkrétní DAO objektu se kterým pracuji dědí od generického:
Konkrétní výběr který posílám pak v REQUESTU je:
emf je pořád stejný objekt, který posílám tam kde je třeba.