Advertisement
chrisversloot

Untitled

Jun 20th, 2014
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.63 KB | None | 0 0
  1. try {
  2.                    
  3.                     Connection conn = DatabaseHelper.getConnection();
  4.                    
  5.                     /* Voer de query uit */
  6.                     if(conn != null) {
  7.                        
  8.                         /* Definieer de te gebruiken strings */
  9.                         String voorstellingen = null;
  10.                         String discipline = null;
  11.                         String leerlingen = null;
  12.                         String groep = null;
  13.                        
  14.                         /* Bepaal welke zoekmethode wordt gebruikt en vul de strings */
  15.                         if(request.getParameter("typeZoekopdracht") != null && request.getParameter("typeZoekopdracht").equals("normaal")) {
  16.                             String zoekresultaat = request.getParameter("WatWilIk[]");
  17.                             Dissector dissector = new Dissector();
  18.                             HashMap<String, String> dissected = dissector.dissect(zoekresultaat);          
  19.                             HashMap<String, String> revdissected = new HashMap<String, String>();  
  20.                            
  21.                             System.out.println(Arrays.toString(dissected.keySet().toArray()));            
  22.                            
  23.                             for(String key : dissected.keySet()){
  24.                                 revdissected.put(dissected.get(key), key);
  25.                                 System.out.println(key + " => " + dissected.get(key));
  26.                             }
  27.                            
  28.                             System.out.println(Arrays.toString(revdissected.keySet().toArray()));
  29.                            
  30.                             try {
  31.                                 if(revdissected.get("WHAT") != null)
  32.                                     voorstellingen = Dissector.trim(revdissected.get("WHAT"));
  33.                                 if(revdissected.get("DISCIPLINE") != null) 
  34.                                     discipline = Dissector.trim(revdissected.get("DISCIPLINE"));
  35.                                 if(revdissected.get("AMOUNT") != null)
  36.                                     leerlingen = Dissector.trim(revdissected.get("AMOUNT"));
  37.                                 if(revdissected.get("dezedissectjeniet:-()") != null)
  38.                                     groep = Dissector.trim(revdissected.get("dezedissectjeniet:-()"));
  39.                             }
  40.                             catch(Exception e) {
  41.                                 System.out.println("Exception: " + e.toString());
  42.                                 System.out.println(e.getMessage());
  43.                             }
  44.                            
  45.                         }
  46.                         else {
  47.                             voorstellingen = request.getParameter("voorstellingen");
  48.                             discipline = request.getParameter("discipline");
  49.                             leerlingen = request.getParameter("leerlingen");
  50.                             groep = request.getParameter("groep");
  51.                         }              
  52.                        
  53.                         /* Definieer de vervolgbooleans voor de query */
  54.                         boolean voorstellingQ = false;
  55.                         boolean disciplineQ = false;
  56.                         boolean leerlingenQ = false;
  57.                        
  58.                         /* Bouw de query op */
  59.                         String opbouwQuery = "SELECT aanbodid, titel, foto FROM aanbod a WHERE";
  60.                        
  61.                         int inc = 0;
  62.                        
  63.                         /* Bekijk of een voorstelling is ingevoerd */
  64.                         if(voorstellingen != null){
  65.                             opbouwQuery += " titel LIKE ?";
  66.                             voorstellingQ = true;
  67.                             inc++;
  68.                         }
  69.                        
  70.                         /* Bekijk of een discipline is ingevoerd */
  71.                         if(discipline != null && !discipline.equals("-1")){
  72.                            
  73.                             if(voorstellingQ) {
  74.                                 opbouwQuery += " AND ";
  75.                             }
  76.                            
  77.                             opbouwQuery += " EXISTS (SELECT * FROM \"behoortTot\" b WHERE a.aanbodid = b.aanbodid AND disciplineid = ?)";
  78.                                    
  79.                             disciplineQ = true;
  80.                            
  81.                             inc++;
  82.                            
  83.                         }
  84.                        
  85.                         /* Bekijk of een aantal leerlingen is ingevoerd */
  86.                        
  87.                         if(leerlingen != null){
  88.                            
  89.                             if(voorstellingQ || disciplineQ) {
  90.                                 opbouwQuery += " AND ";
  91.                             }
  92.                            
  93.                             opbouwQuery += " deelname BETWEEN ? AND ?";
  94.                            
  95.                             leerlingenQ = true;
  96.                            
  97.                             inc++;
  98.                             inc++;
  99.                            
  100.                         }
  101.                        
  102.                         /* Bekijk of een groep is ingevoerd */
  103.                        
  104.                         if(groep != null && !groep.equals("-1")) {
  105.                            
  106.                             if(voorstellingQ || leerlingenQ || disciplineQ) {
  107.                                 opbouwQuery += " AND ";
  108.                             }
  109.                            
  110.                             opbouwQuery += " EXISTS (SELECT * FROM groepvoorstelling WHERE voorstelling = aanbodid AND groepid = ?)";
  111.                             inc++;
  112.                         }
  113.                        
  114.                         System.out.println(opbouwQuery);
  115.                        
  116.                        PreparedStatement ps = conn.prepareStatement(opbouwQuery);
  117.                        int incmax = inc;
  118.                        if(voorstellingen != null){
  119.                            ps.setString((incmax-inc+1),"%" + voorstellingen + "%");
  120.                            inc--;
  121.                        }
  122.                        if(discipline != null && !discipline.equals("-1")){
  123.                            
  124.                            PreparedStatement psd = conn.prepareStatement("SELECT * FROM discipline WHERE discipline LIKE ?");
  125.                            psd.setString(1, "%"+discipline+"%");
  126.                            
  127.                            ResultSet rsd = psd.executeQuery();
  128.                            ps.setInt(incmax-inc+1,0);
  129.                            while(rsd.next()) {
  130.                               ps.setInt(incmax-inc+1,rsd.getInt("id"));
  131.                            }
  132.                        
  133.                            rsd.close();
  134.                            psd.close();
  135.                            inc--;
  136.                        }
  137.                        if(leerlingen != null){
  138.                            try {
  139.                                ps.setInt(incmax-inc+1,new Integer(leerlingen));
  140.                                inc--;
  141.                                ps.setInt(incmax-inc+1,new Integer(leerlingen)+200);            
  142.                                inc--;
  143.                            }
  144.                            catch(NumberFormatException e) {
  145.                                ps.setInt(incmax-inc+1,0);
  146.                                inc--;
  147.                                ps.setInt(incmax-inc+1,+2000);              
  148.                                inc--;
  149.                            }
  150.                        }
  151.                        if(groep != null && !groep.equals("-1")) {
  152.                            ps.setInt(incmax-inc+1,new Integer(groep));
  153.                            inc--;
  154.                        }
  155.                        System.out.println("Deze query wordt uitgevoerd: " + ps);
  156.                        ResultSet rs = ps.executeQuery();
  157.                        while(rs.next()){
  158.                           String foto = rs.getString("foto");
  159.                           String id = rs.getString("aanbodid");
  160.                           out.write("<div class=\"col-md-3 mix category-2\" style=\"display: inline-block;\"><a href=\"activiteit.jsp?voorstellingid=" + id + "\">"
  161.                         +   "<img class=\"top10\" src=" + foto + " width=\"100%\">"
  162.                         + " </a>  </div>");
  163.                        }
  164.                        
  165.                        conn.close();
  166.                        ps.close();
  167.                        rs.close();
  168.                        
  169.                        
  170.                        
  171.                     }
  172.                    
  173.                            
  174.                 }
  175.                            
  176.                 catch(Exception e) {
  177.                     out.println(e.toString() + e.getMessage());
  178.                 }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement