Her er en oversigt over, hvordan man henter data fra en database ved hjælp af stivere 2 sammen med vigtige overvejelser:
1. Databaseopsætning
* Forbindelse: Opret en forbindelse til din database. Du har brug for:
* Databasedriver (f.eks. MySQL Connector/J)
* Forbindelsesoplysninger (vært, databasenavn, brugernavn, adgangskode)
* SQL -forespørgsler: Opret SQL -udsagnene for at hente de data, du har brug for.
2. Struts 2 Action Class
* Handling: Opret en Java -klasse, der udvider klassen `ActionSupport 'eller enhver anden passende Struts 2 -actionklasse. Denne klasse håndterer databaseinteraktionen.
* Databaseinteraktion: Implementere følgende trin inden for din handlingsklasse:
* Dataadgangslag (DAO): Design en separat DAO -klasse (eller brug en eksisterende) til at indkapsle databaseinteraktioner. Dette fremmer kodens genanvendelighed og vedligeholdelighed.
* DAO -metoder: Opret metoder inden for DAO -klassen til udførelse af databaseoperationer, såsom hentning af data.
* Handlingsmetode: I din Struts 2 -handlingsklasse skal du ringe til DAO -metoderne for at hente data.
* befolke data: Opbevar de hentede data i Java -objekter eller datastrukturer.
3. Javabeans (model)
* Opret javabeans: Definer Java -klasser (POJO'er) for at repræsentere de data, du henter fra databasen.
* kortlægning: Kortlæg databasesøjlerne til Javabean -egenskaberne.
4. Struts 2 Konfiguration (strutter.xml)
* Handlingskortlægning: Konfigurer handlingskortlægningen for din Struts 2 -handlingsklasse inden for filen `Struts.xml`.
* Resultat: Specificer en resultattype (f.eks. 'Dispatcher', 'JSON') baseret på, hvordan du vil præsentere de hentede data.
Eksempelkode
`` Java
// DAO -klasse
Public Class ProductDao {
offentlig liste getProducts () {
Liste produkter =ny ArrayList <> ();
prøv (Connection Conn =DriverManager.getConnection ("JDBC:mysql:// localhost:3306/myDatabase", "bruger", "adgangskode");
ForberedtStatement stmt =conn.Perparestatement ("Vælg * fra produkter")) {
ResultsSet rs =stmt.executequery ();
mens (rs.next ()) {
Produktprodukt =nyt produkt ();
produkt.setId (rs.getInt ("id"));
Product.SetName (Rs.GetString ("Navn"));
Product.SetPrice (rs.getDouble ("Pris"));
Products.Add (produkt);
}
} fangst (sqlexception e) {
e.printStackTrace ();
}
returprodukter;
}
}
// actionklasse
Public Class Productaction udvider Actionsupport {
privat liste produkter;
privat produktDao produktDao =nyt produktDao ();
public String execute () {
produkter =produktDao.getProducts ();
returnering succes;
}
offentlig liste getProducts () {
returprodukter;
}
}
// Produktbønne
Public Class Product {
privat int id;
privat strengnavn;
privat dobbeltpris;
// Getters and Setters
}
// struts.xml
/Web-INF/JSP/Products.jsp
`` `
Vigtige overvejelser:
* Databaseforbindelsesstyring: Brug forbindelsespooling til at forbedre ydeevnen og ressourcestyring.
* sikkerhed: Beskyt dine databaseoplysninger og brug forberedte udsagn til at forhindre SQL -injektionssårbarheder.
* Transaktioner: Brug transaktioner for at sikre dataintegritet, især til flere databaseoperationer.
* Fejlhåndtering: Håndter database undtagelser yndefuldt og giver passende feedback til brugeren.
* ydelse: Optimer dine SQL -forespørgsler og overvej cache -mekanismer til ofte tilgængelige data.
tip:
* Brug rammer: Overvej at bruge en ORM (objekt-relationskortlægning) ramme som Hibernate eller MyBatis til at forenkle databaseinteraktioner.
* afhængighedsinjektion: Anvend afhængighedsinjektion til at styre din DAO og andre ressourcer.
* test: Skriv enhedstest for at verificere dine databaseoperationer.
Fortæl mig, hvis du har nogen specifik databaseopsætning eller Struts 2 -konfiguration i tankerne. Jeg giver gerne mere skræddersyede eksempler.