[JSP] Database input design probleem

Pagina: 1
Acties:

  • -Klimaks-
  • Registratie: Maart 2001
  • Laatst online: 21-08 16:03
Korte situatieschets:
Ik ben hier bezig aan een JSP pagina waarvan ik verschillende eigenschappen in een DB heb opgeslagen. Een javabean zorgt ervoor dat ik die eigenschappen beschikbaar heb in mijn pagina. De databaseconnectie zat eerst bij in deze bean, maar aangezien ik verschillende beans had die de database raadplegen, heb ik dat maar in mooie DBInterface gestoken.

Het probleem:
Ik kan meer geen goede structuur vinden om de waarden uit de DB te halen, volgende dingen heb ik al geprobeerd:
- Ik had eerst een methode geschreven die een object van dezelfde klasse als de bean returnde. Dan met setters en getters de waarden in de bean opgevuld. Dit vond ik nu niet echt de properste methode.
- In plaats van allemaal aparte variabelen bij te houden in mijn bean, een HashMap bij houden. Deze kon later redelijk gemakkelijk opgevuld worden met een HashMap die gereturnd werd door de DBInterface. Tegen dat het allemaal af was, had ik terug het gevoel dat het beter kon...
- Ook nog aan een Vector gedacht, maar dan zijn de volgorden van opvullen en terug leeghalen te belangrijk imho.

Iemand een ideetje wat wel een beetje fatsoenlijk en onderhoudbaar zou zijn?

edit:
|:( Sorry modjes, nu vergeet ik de titel nog af te maken, maak er maar design probleem ofzo van. Thnx

[ Voor 5% gewijzigd door -Klimaks- op 20-02-2003 19:34 ]

In those days spirits were brave, the stakes were high, men were REAL men, women were REAL women, and small furry creatures from Alpha Centauri were REAL small furry creatures from Alpha Centauri.
Zaphod in The Hitchhikers Guide To The Galaxy


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Ik heb het als volgt gemaakt:
[ulist]• Iedere entiteit heeft een klasse (bv. een klasse Order). Deze heeft getters en setters voor alle kolommen en insert, update en delete methoden.
• Iedere tabel heeft een klasse (bv. een klasse Orders). Deze heeft getByX methoden om de entiteit-objecten voor een bepaalde rij uit de tabel te halen, zoals getById, getByCustomerId, getByProductId, etc. Dus voor de PK en de FK's.
• Er is een klasse Database met referenties naar alle tabellen.
[/ulist]
Dit soort code kun je vervolgens gebruiken om gegevens op te halen:
Java:
1
2
Database db = ...;
Order order = db.getOrders().getByProductId(id);

Het wijzigen van waarden gaat vervolgens zo:
Java:
1
2
3
4
5
synchronized (order)
{
    order.setProductId(...);
    order.update();
}

Om te zorgen dat er van elke rij in de tabel altijd maximaal één entity-object bestaat worden ze in een soort cache bijgehouden (een Map van WeakReferences naar de objecten). Daarin wordt gekeken of het object al bestaat voordat er een nieuwe gemaakt wordt.

Ik hoop dat je hier iets aan hebt :)

[ Voor 4% gewijzigd door marcusk op 20-02-2003 21:56 ]