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