24. april 2005 - 17:53Der er
20 kommentarer og 1 løsning
Hjælp med gateway pattern
Hvordan skal sådan noget programmeres? Jeg har programmeret en klasse "Bruger.java" og i min database (oracle 9i) findes der en tabel med "Bruger" med tre felter. BrugerID (tekst) Password (tekst) afdeling (tekst).
men så mangler jeg selve BrugerGateWay.Java klassen. Hvordan skal man lave sådan en? Har forstået det eneste den skal kunne er, at returnere objekter af Bruger.java. Men hvordan skal det laves? Er det bare en helt normal metode som hiver parametre ned og sender et objekt tilbage udfra hvad den finder i databasen? eller er det noget med prepared statements?
public class BrugerGateway { public BrugerGateway() { ... } public Bruger findEnBruger(String id) { ... } public ArrayList findAlleBrugere() { ... } public void gemBruger(Bruger o) { ... } }
okay det er det med ? tegnene, som jeg ikke forstår. Betyder det her pstmt.setString(1, id); står 1 tallet for spørgsmåltegn 1? og id er parametren som kommer med metoden?
Vi skal nemlig også hive nogle varer op fra databasen og der kender vi ikke id'et på den, men navnene. Vi havde tænkt os, at søge med LIKE og det kan man ikke gøre ud fra et id:)
okay men man må gerne sende flere parametre med? må jeg næsten gå ud fra ellers kan jeg ikke se hvordan man kan udfylde de resterende spørgsmåltegn.
alle mine gateways bliver oprettet af i en klasse. skal denne klasse oprette database forbindelsen eller er det okay, at hver gateway opretter sin egen database forbindelse? den lukker selvfølgelig også efter.
Vi har også lavet en gateway per tabel:) men vi har lavet en slags dbkontrol klasse som opretter en instans af hver gateway.
så hvis du bedre kan svare dette nu
alle mine gateways bliver oprettet af i en klasse. skal denne klasse oprette database forbindelsen eller er det okay, at hver gateway opretter sin egen database forbindelse? den lukker selvfølgelig også efter.
Du kan enten lave dine gateway klasser som singleton eller oprette en instans når du skal bruge en.
singleton + permanent åben connection = kræver synchronized på metoderne
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.