Toon posts:

[JAVA, J2ME] [I-mode] Connectie met MySQL DB

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heren,

Voor school hebben wij een opdracht gekregen om een webwinkel in JAVA te proggen, nou is dat op zich niet zo een probleem, maar onze groep hield wel van een uitdaging en dus zijn wij een stapje verder gegaan. We hadden namelijk ook de mogelijkheid om een Java applicatie te schrijven voor een I-mode toestelletje! Die dingen slikken ook Java tenslotte, zij het Java de Micro Edition... Hierin zitten dus een aantal probleempjes, waaronder het volgende: we moeten een database connectie zien te leggen naar onze MySQL database, maar we hebben eerlijk gezegd geen idee hoe! JDBC is namelijk niet te gebruiken, want er zit geen DriverManager klasse in J2ME. We vermoeden dus dat we de klasse RMS moeten gebruiken van de record management set, maar geen idee of dat idee klopt.

Wie o wie kan ons helpen?! Mocht het makkelijker gaan met een andere Database, dan horen we dat graag natuurlijk, dan gooien we de boel wel even om... We hebben alleen even een beginnetje nodig.

  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

J2ME is inderdaad een sterk afgeslankte versie van J2SE. Ik zie zelf het nut niet van een webwinkel die locaal op je telefoon draait...Ik kan me wel een client voorstellen die met een webwinkel op J2EE communiceert. Bedenk dat je met J2ME veel minder geheugen en veel minder utility classes tot je beschikking hebt. Je noemt zelf al dat JDBC niet beschikbaar is. RMS is niet zo zeer een vervanging van JDBC maar meer een generieke manier om data op te slaan op een J2ME device, omdat je in J2ME bijv ook niet files kan wegschrijven.

Verwijderd

Je zou gebruik kunnen maken als iets als XML webservices, RMI (Remote Method Invocation) of XML-RPC of met een eigen protocol communiceren met een server waar de gevraagde data vandaag gehaald kan worden. Je maakt dan niet direct een connectie met MySQL (wat waarschijnlijk ook niet erg veilig zou zijn), maar doet dat indirect door instructies te sturen naar de server.

Het is wel omslachtiger natuurlijk, maar ja. Ik ken J2ME verder niet, dus misschien zijn er efficiëntere oplossingen.

  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Ik zou een dataoutputstream gebruiken om met je webwinkel te communiceren of wellicht een xml iets. In elk geval zou ik de client zo licht mogelijk houden en dat is met een dataoutputstream het makkelijkste. Je wil zo veel mogelijk logica op de server en zo min mogelijk op de client.. RMI heb je ook niet op J2ME, voor xml ondersteuning zijn er wel libs maar dan nog moet het allemaal klein en compact.

Verwijderd

Topicstarter
grhmpf schreef op 30 mei 2004 @ 19:26:
Ik zie zelf het nut niet van een webwinkel die locaal op je telefoon draait...
Daar zie ik het nut ook niet van in ;)

Het scenario is als volgt: opdrachtgever heeft een groothandel in gereedschappen en wil dat zijn klanten via een i-mode toestel dingetjes kunnen bestellen... Er staat dus ergens een gewone PC, met daarop de database en de I-mode applicatie... Die I-mode applicatie is dan weer m.b.v. je telefoontje te benaderen... Die applicatie word dus door de telefoon ingeladen en vervolgens moet er een verbinding gemaakt worden met de DB, die nog op die PC staat. Let op, het gaat dus over een DB met "duizenden" artikelen en die kan dus niet in zijn geheel naar de telefoon gestuurd worden. Maar hoe maken we nou verbinding met die DB?!

  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Dan moet je in elk geval zorgen dat je niet die hele db wilt overhalen :) Ik neem aan dat je een zoekfunctie bouwt of iets waarmee je bladert. Op de backend kant heb je bijv een servlet die de daadwerkelijke db connectie doet. Om compatible te blijven moet je waarschijnlijk via http een connectie opzetten en dan kan je objecten/data serializen met een dataoutputstream of met xml. Met dataoutputstream kan je dingen als writeInt doen die je met readInt weer kan lezen. Als iemand wil bestellen kan je er voor kiezen een signaal naar de server te sturen om het virtuele winkelmandje te updaten, of je slaat het mandje lokaal op je toestel op dmv RMS.

Wat je in elk geval goed voor ogen moet hebben is de architectuur. Je laadt dus nooit een hele db in op je telefoon, want dat kan simpelweg niet, vanwege het beperkte geheugen en het feit dat je geen jdbc ofzo hebt.

Maar ik denk dat je zo wel iets moet kunnen maken :)

[ Voor 1% gewijzigd door grhmpf op 15-06-2004 17:33 . Reden: er stond daadwerkelijk "daatwerkelijk" en dat kan ik niet aan :) ]

Pagina: 1