Hier is een uitsplitsing van het ophalen van gegevens uit een database met behulp van Struts 2, samen met belangrijke overwegingen:
1. Database Setup
* verbinding: Een verbinding tot stand brengen met uw database. Je hebt nodig:
* Database -stuurprogramma (bijv. MySQL Connector/J)
* Verbindingsgegevens (host, databasenaam, gebruikersnaam, wachtwoord)
* SQL -query's: Maak de SQL -instructies om de gegevens die u nodig heeft op te halen.
2. Struts 2 Action Class
* Actie: Maak een Java -klasse die de klasse `Actionsupport` of een andere geschikte struts 2 -actieklasse uitbreidt. Deze klasse behandelt de database -interactie.
* database -interactie: Implementeer de volgende stappen in uw actieklasse:
* Layer Gegevenstoegang (DAO): Ontwerp een afzonderlijke DAO -klasse (of gebruik een bestaande) om database -interacties in te kapselen. Dit bevordert herbruikbaarheid en onderhoudbaarheid van code.
* DAO -methoden: Maak methoden in de DAO -klasse voor het uitvoeren van databasebewerkingen, zoals het ophalen van gegevens.
* Actiemethode: Bel in uw Struts 2 -actieklasse de DAO -methoden om gegevens op te halen.
* Pompuleer gegevens: Bewaar de opgehaalde gegevens in Java -objecten of gegevensstructuren.
3. Javabeans (model)
* Javabeans Create: Definieer Java -klassen (POJO's) om de gegevens weer te geven die u uit de database ophalen.
* Mapping: Wijs de databasekolommen toe aan de Javabean -eigenschappen.
4. Struts 2 Configuration (struts.xml)
* Actiemapping: Configureer de actiekaarten voor uw Struts 2 -actieklasse in het bestand `struts.xml`.
* resultaat: Geef een resultatietype op (bijv. `Dispatcher`,` JSON`)) op basis van hoe u de opgehaalde gegevens wilt presenteren.
Voorbeeldcode
`` `Java
// Dao -klasse
public class productdao {
openbare lijst getProducts () {
Lijst producten =nieuwe arrayList <> ();
probeer (verbinding conn =driverManager.getConnection ("jdbc:mysql:// localhost:3306/myDatabase", "user", "wachtwoord");
PreparedStatement stmt =conn.preparestatement ("Select * from Products")) {
ResultSet rs =stmt.ExecuteQuery ();
terwijl (rs.Next ()) {
Productproduct =nieuw product ();
Product.setid (rs.getInt ("id"));
Product.setName (rs.GetString ("Name"));
Product.setPrice (Rs.GetDouble ("Price"));
Products.Add (product);
}
} catch (sqlexceptie e) {
E.PrintStackTrace ();
}
retourproducten;
}
}
// Actieklasse
Public Class ProductAction breidt ActionsUpport uit {
privélijst Producten;
private productdao productdao =new ProductDao ();
public String execute () {
Products =ProductDao.GetProducts ();
retournes succes;
}
openbare lijst getProducts () {
retourproducten;
}
}
// Productboon
Public Class -product {
privé -int id;
privé -stringnaam;
privé dubbele prijs;
// Getters en setters
}
// struts.xml
/web-Inf/jsp/products.jsp
`` `
Belangrijke overwegingen:
* database -verbindingsmanagement: Gebruik verbindingspooling om prestaties en hulpbronnenbeheer te verbeteren.
* Beveiliging: Bescherm uw database -referenties en gebruik voorbereide verklaringen om kwetsbaarheden van SQL -injectie te voorkomen.
* transacties: Gebruik transacties om gegevensintegriteit te garanderen, met name voor meerdere databasebewerkingen.
* Foutafhandeling: Behandel database -uitzonderingen sierlijk en geven de gebruiker passende feedback.
* prestaties: Optimaliseer uw SQL -query's en overweeg cachingmechanismen voor vaak toegang tot gegevens.
tips:
* Gebruik frameworks: Overweeg het gebruik van een ORM-framework (object-relationeel kaarten) zoals Hibernate of mybatis om database-interacties te vereenvoudigen.
* Afhankelijkheidsinjectie: Gebruik afhankelijkheidsinjectie om uw DAO en andere middelen te beheren.
* testen: Schrijf eenheidstests om uw database -bewerkingen te verifiëren.
Laat het me weten als u een specifieke database -instelling of struts 2 -configuratie in gedachten heeft. Ik zal graag meer voorbeelden geven. |