Här är en uppdelning av hur man hämtar data från en databas med hjälp av Struts 2, tillsammans med viktiga överväganden:
1. Databasinställning
* Anslutning: Upprätta en anslutning till din databas. Du behöver:
* Databasdrivrutin (t.ex. MySQL Connector/J)
* Anslutningsdetaljer (värd, databasnamn, användarnamn, lösenord)
* SQL -frågor: Skapa SQL -uttalanden för att hämta de uppgifter du behöver.
2. Struts 2 Action Class
* Åtgärd: Skapa en Java -klass som förlänger klassen "ActionSupport" eller någon annan lämplig Struts 2 -actionklass. Denna klass kommer att hantera databasinteraktionen.
* databasinteraktion: Implementera följande steg inom din handlingsklass:
* Data Access Layer (DAO): Designa en separat DAO -klass (eller använd en befintlig) för att kapsla in databasinteraktioner. Detta främjar återanvändbarhet och underhåll av kod.
* DAO -metoder: Skapa metoder inom DAO -klassen för att utföra databasoperationer, till exempel att hämta data.
* Åtgärdsmetod: Ring DAO -metoderna för att hämta data i din Struts 2 -åtgärdsklass.
* Populate Data: Förvara de hämtade uppgifterna i Java -objekt eller datastrukturer.
3. Javabeans (modell)
* Skapa javabeans: Definiera Java -klasser (POJOS) för att representera de data du hämtar från databasen.
* Mapping: Kartlägga databaskolumnerna till de javabiska egenskaperna.
4. Struts 2 -konfiguration (struts.xml)
* Action Mapping: Konfigurera åtgärdskartläggningen för din Struts 2 -åtgärdsklass i filen "struts.xml".
* Resultat: Ange en resultattyp (t.ex. `Dispatcher ',` JSON') baserat på hur du vill presentera de hämtade uppgifterna.
Exempelkod
`` `Java
// DAO -klass
Public Class Productdao {
offentlig lista getProducts () {
Lista Produkter =ny ArrayList <> ();
Try (Connection Conn =DriverManager.GetConnection ("JDBC:MySQL:// localHost:3306/MyDatabase", "Användare", "Password");
PreparedStatement stmt =conn.prepareStatement ("Select * from Products")) {
Resultatset rs =stmt.executeQuery ();
medan (rs.next ()) {
Produktprodukt =ny produkt ();
produkt.setid (rs.getInt ("id"));
Product.SetName (Rs.GetString ("Namn"));
Product.SetPrice (rs.getDouble ("pris"));
Products.Add (produkt);
}
} catch (sqlexception e) {
e.printStackTrace ();
}
returprodukter;
}
}
// actionklass
Public Class ProductAction utvidgar ActionSupport {
Privatlista Produkter;
privat produktDao ProductDao =new ProductDao ();
public String execute () {
Produkter =ProductDao.getProducts ();
returnera framgång;
}
offentlig lista getProducts () {
returprodukter;
}
}
// Produktböna
Public Class Product {
privat int id;
privat strängnamn;
privat dubbelpris;
// Getters and Setters
}
// struts.xml
/web-inf/jsp/produkter.jsp
`` `
Viktiga överväganden:
* Databasanslutningshantering: Använd anslutningspoolning för att förbättra prestanda och resurshantering.
* Säkerhet: Skydda dina databasuppgifter och använd förberedda uttalanden för att förhindra SQL -injektionssårbarheter.
* Transaktioner: Använd transaktioner för att säkerställa dataintegritet, särskilt för flera databasoperationer.
* Felhantering: Hantera databasundantag graciöst och ge lämplig feedback till användaren.
* Prestanda: Optimera dina SQL -frågor och överväga cachemekanismer för ofta åtkomst till data.
tips:
* Användningsramar: Överväg att använda en ORM (objektrelationell kartläggning) ramverk som viloläge eller mybatis för att förenkla databasinteraktioner.
* Beroendeinjektion: Anställ beroendeinjektion för att hantera din DAO och andra resurser.
* testning: Skriv enhetstester för att verifiera dina databasoperationer.
Låt mig veta om du har någon specifik databasinställning eller Struts 2 -konfiguration i åtanke. Jag kommer gärna att ge mer skräddarsydda exempel.