[Java][MySQL] code uitvoeren na update

Pagina: 1
Acties:

  • L01
  • Registratie: December 2003
  • Laatst online: 17:17
Ik heb een java programma gemaakt die gegevens uit een database haalt. Daarna worden met deze gegevens een bestand gecreerd.

Nu wil ik, wanneer een tabel in de database geupdate wordt, dat er een stukje code uitgevoerd wordt.

Ik kan wel een loopje maken die om de x sec. de database checked of er een update is maar eigenlijk is dat niet precies wat ik zoek.

Het mooiste zou zijn dat ik iets kon maken dat lijkt op een Trigger ofzo.

Heeft iemand enig idee hoe ik dit efficient op kan lossen?

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 08:22
Welke database gebruik je en welk "stukje code" moet uitgevoerd worden?
Wat probeer je sowieso eigelijk te bereiken :?

  • L01
  • Registratie: December 2003
  • Laatst online: 17:17
Ik gebruik Mysql (Zie TT :P )

Wat ik dus wil bereiken is dat er iedere keer dat er een update in de tabel is geweest dat er dan een nieuwe file aan wordt gemaakt.

[ Voor 4% gewijzigd door L01 op 06-11-2006 11:42 ]

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Kan je de trigger niet schrijven in het bestandje wat je database update?
Java:
1
2
3
4
5
boolean succes = update(mysql);
if(succes)
   trigger();
else
   cry(likeBaby);

Going for adventure, lots of sun and a convertible! | GMT-8


  • L01
  • Registratie: December 2003
  • Laatst online: 17:17
Dat wordt lastig.

De situatie is namelijk zo:

server ---update----> mysql db <----vraag om gegevens --- Client (x).

Ik kan dus niet gelijk van server naar client omdat ik niet weet welke clients naar de DB zijn geconnect.

Hi, I'm a signature virus. Put me in your signature to help me spread.


Verwijderd

houd ergens in een veld in de database bij wanneer de laatste update is geweest
lees in je programma het veld om de zoveel tijd uit
wanneer de datum die uit de database komt recenter is dan die je eerder hebt ingelezen, voer je 'het stukje code' uit.

  • L01
  • Registratie: December 2003
  • Laatst online: 17:17
Zoals je in de TS leest had ik dit al uitgedacht, maar ik zoek iets efficienters.

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 01-12 17:16
Volgens mij is MySQL hier te beperkt voor. Zal je toch meoten uitkijken naar een andere DBMS als je dit zo wilt vrees ik.

Read the code, write the code, be the code!


  • L01
  • Registratie: December 2003
  • Laatst online: 17:17
Is dit wel mogelijk met een andere DB, zoals MS-SQL ofzo?
:D

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:39

TeeDee

CQB 241

Ja. Alle RDBMS welke een trigger aan kunnen.
Dus je zou zelf op kunnen zoeken welke dit allemaal zijn.

MS-SQL zeker, PostGreSQL dacht ik ook.

Wat je eventueel ook zou kunnen doen is dat zodra gebruikers die file aanroepen, dit file dynamisch aangemaakt wordt.

[ Voor 100% gewijzigd door TeeDee op 06-11-2006 12:13 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Sorry, maar ik zie dit niet als zijnde een DB probleem. Je moet vooral zelf duidelijker weten (of weten over te brengen) wat je wil. Je zegt niet eens duidelijk waar die file moet komen en misschien kan je ook uit de doeken doen waarom die file zo belangrijk is? Waarom is pollen niet efficient genoeg volgens jou?

[ Voor 26% gewijzigd door Voutloos op 06-11-2006 12:11 ]

{signature}


  • L01
  • Registratie: December 2003
  • Laatst online: 17:17
Beste Voutloos,

Waarschijnlijk heb je mijn posts niet goed gelezen, het is absoluut niet van belang voor mijn probleem waar en hoe deze file wordt gecreerd.

Ik maak XML files aan, die laad ik in Google Earth. De posities in deze file worden uit de DB gehaald.
Zodra er dus een nieuwe update is moet er er dus een nieuwe file aan worden gemaakt. Deze wordt dan weer geladen in Google Earth.

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • momania
  • Registratie: Mei 2000
  • Laatst online: 19:27

momania

iPhone 30! Bam!

Wat update je database vanuit de server? Is dat ook een stukje java software?

Mooiste oplossing voor dit soort zaken is om de clients met een java deel op de server te laten communiceren ipv direct met de database. Het server deel, weet dan direct welke clients er verbonden zijn en kan na een update naar de database de verbonden clients notifien :)

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

observer pattern anyone?

  • momania
  • Registratie: Mei 2000
  • Laatst online: 19:27

momania

iPhone 30! Bam!

TS wil nu een notify vanaf de database (zonder java en trigger mogenlijkheid) direct naar de (java) clients . Hoe zie jij daarin een observer pattern toegepast? ;)

Neem je whisky mee, is het te weinig... *zucht*


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
L01 schreef op maandag 06 november 2006 @ 12:27:
Waarschijnlijk heb je mijn posts niet goed gelezen, het is absoluut niet van belang voor mijn probleem waar en hoe deze file wordt gecreerd.
Mooi, dan kan het ook geen probleem zijn welke enkel door het DBMS zelf op te lossen is. :) Als de mysql server nu niet weet wie de clients zijn en wanneer er updates zijn, kan je voor een server proces xorgen welke dit wel voor je bijhoudt, wat momania nu ook zegt. :)

{signature}


  • L01
  • Registratie: December 2003
  • Laatst online: 17:17
mm ik denk dat ik de client naar de server én de db server laat connecten. (ivm andere functionaliteiten van mijn programma).

Zodra de server dus een update in de DB zet stuurt hij even een melding naar de clients die erom gevraagd hebben.

Zodra dit gelukt is (of niet) horen jullie van mij :) thnx

Hi, I'm a signature virus. Put me in your signature to help me spread.


Verwijderd

de notify kan toch verzonden worden vanuit de java applicatie die uiteindelijk de update op de database doet? Ik weet ook niet wat voor applicatie of iets uiteindelijk de update uitvoert op de database, maar vanuit die een notify verzenden lijkt me het makkelijkst, of je moet natuurlijk een dbms hebben wat dat signaal kan versturen.
Pagina: 1