1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
package com.myapp.struts;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import java.sql.*;
import java.util.ArrayList;
import javax.sql.*;
import org.apache.struts.Globals;
public class DatasourceConnectionAction extends Action {
private DataSource dataSource;
public ArrayList customerList = new ArrayList();
private final static String SUCCESS = "success";
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
/** Ici, la méthode qui fait la connection à la DataSource est appelée: */
customerList = getCustomers() ;
/** Ici, nous mettons le customerList dans le scope, pour pouvoir l'utiliser dans la page JSP: */
if(customerList != null){
session.setAttribute("allMyCustomers" , customerList);
}
return (mapping.findForward(SUCCESS));
}
private ArrayList getCustomers(){
Connection conn = null;
Statement stmt = null;
PreparedStatement prpStmt = null;
ResultSet rs = null;
StringBuffer resultString ;
try{
/** Ici, 'empTable' est associé à la clef de la DataSource dans struts-config.xml: */
dataSource = (DataSource)servlet.getServletContext().getAttribute("empTable");
conn = dataSource.getConnection();
String sqlQuery = "SELECT * FROM CUSTOMER_TBL";
prpStmt = conn.prepareStatement(sqlQuery);
rs = prpStmt.executeQuery();
/** Ici, nous avons mis le champs 4 (le nom) et le champs 7 (la ville) dans la customerList: */
while (rs.next()) {
customerList.add(new row(rs.getString(4), rs.getString(7)));
}
rs.close();
} catch ( SQLException e ) {
System.err.println("SQL Exception occured while accessing the table" );
e.printStackTrace();
return null;
} catch ( Exception e ) {
e.printStackTrace();
return null;
}
return customerList;
}
} |
Partager