Her er en oversikt over hvordan du kan hente data fra en database ved hjelp av Struts 2, sammen med viktige hensyn:
1. Databaseoppsett
* tilkobling: Etablere en tilkobling til databasen din. Du trenger:
* Databasedriver (f.eks. MySQL Connector/J)
* Tilkoblingsdetaljer (vert, databasenavn, brukernavn, passord)
* SQL -spørsmål: Opprett SQL -utsagnene for å hente dataene du trenger.
2. Struts 2 Handlingsklasse
* Handling: Lag en Java -klasse som utvider `ActionSupport` -klassen eller andre passende Struts 2 -actionklasse. Denne klassen vil håndtere databaseinteraksjonen.
* Databaseinteraksjon: Implementere følgende trinn i handlingsklassen din:
* Data Access Layer (DAO): Design en egen DAO -klasse (eller bruk en eksisterende) for å innkapsle databaseinteraksjoner. Dette fremmer kode gjenbrukbarhet og vedlikeholdbarhet.
* DAO -metoder: Lag metoder i DAO -klassen for å utføre databaseoperasjoner, for eksempel å hente data.
* Handlingsmetode: Ring DAO -metodene for å hente data.
* Populere data: Lagre hentede data i Java -objekter eller datastrukturer.
3. Javabeans (modell)
* Lag javabeans: Definer Java -klasser (POJOS) for å representere dataene du henter fra databasen.
* kartlegging: Kartlegg databasekolonnene til Javabean -egenskapene.
4. Struts 2 Konfigurasjon (Struts.xml)
* Handlingskartlegging: Konfigurer handlingskartleggingen for din Struts 2 Action -klasse i `struts.xml` -filen.
* Resultat: Spesifiser en resultattype (f.eks. `Dispatcher`,` json`) basert på hvordan du vil presentere de hentede dataene.
Eksempelkode
`` Java
// Dao -klasse
offentlig klasse produktdao {
offentlig liste getProducts () {
Liste produkter =ny ArrayList <> ();
Prøv (tilkobling Conn =DripperManager.getConnection ("JDBC:mysql:// localhost:3306/mydatabase", "bruker", "passord");
PreparedStatement STMT =Conn.Preparestatement ("Select * From Products")) {
Resultset rs =stmt.executeQuery ();
mens (rs.next ()) {
Produktprodukt =nytt produkt ();
Product.setID (rs.getInt ("id"));
Product.setName (Rs.GetString ("Navn"));
Product.setPrice (Rs.GetDouble ("Pris"));
produkter.add (produkt);
}
} fangst (sqlexception e) {
E.PrintStackTrace ();
}
returnere produkter;
}
}
// Handlingsklasse
offentlig klasse ProductAction utvider ActionSupport {
privat liste produkter;
privat produktdao ProductDao =new ProductDao ();
public String execute () {
produkter =produktdao.getProducts ();
retursuksess;
}
offentlig liste getProducts () {
returnere produkter;
}
}
// Produktbønne
offentlig klasse produkt {
privat int ID;
privat strengnavn;
privat dobbel pris;
// getttere og setters
}
// struts.xml
/web-inf/jsp/produkter.jsp
`` `
Viktige hensyn:
* Database Connection Management: Bruk tilkoblingssamling for å forbedre ytelsen og ressursstyringen.
* Sikkerhet: Beskytt databasen din legitimasjon og bruk utarbeidede utsagn for å forhindre SQL -injeksjonssårbarheter.
* transaksjoner: Bruk transaksjoner for å sikre dataintegritet, spesielt for flere databaseoperasjoner.
* Feilhåndtering: Håndter database unntak grasiøst og gi passende tilbakemeldinger til brukeren.
* ytelse: Optimaliser SQL -spørsmålene dine og vurder hurtigbufringsmekanismer for ofte tilgang til data.
Tips:
* Bruk rammer: Vurder å bruke en ORM (objekt-relasjonell kartlegging) rammeverk som dvale eller mybatis for å forenkle databaseinteraksjoner.
* avhengighetsinjeksjon: Ansett avhengighetsinjeksjon for å administrere DAO og andre ressurser.
* testing: Skriv enhetstester for å bekrefte databaseoperasjonene dine.
Gi meg beskjed hvis du har noen spesifikk databaseoppsett eller Struts 2 -konfigurasjon i tankene. Jeg gir gjerne flere skreddersydde eksempler.