Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456

    Problema con Connessione in un .class e select in una pagina JSP

    Ciao,
    ho creato un .class in cui creo una connessione al db da utilizzare poi in varie pagine.

    Però, quando provo a fare una select in una pagina JSP, le righe che riguardano
    PreparedStatement e ResultSet vanno in errore (cannot be resolved to a type).

    Non è possibile separare Class.forName.... e Connection .... da PreparedStatement e ResultSet ?
    Grazie

  2. #2
    Ovvio che lo puoi fare, ricordati di effettuare gli import necessari:
    java.sql.PreparedStatement
    java.sql.ResultSet

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324
    Ciao,

    potresti postare lo StackTrace dell'errore cosi possiamo vedere l'errore?

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    Grazie a tutti e due.
    Ho fatto come ha detto francesco.muia e ho fatto l'import di java.sql.PreparedStatement e
    java.sql.ResultSet.

    La pagina in cui ho l'errore è un include e pensavo fosse sufficiente fare gli import nella pagina padre, ma non è così.

    Però ho ancora un problema. Adesso mi da errore su questa riga
    codice:
    PreparedStatement stmt_menu_left = cnConnessione.prepareStatement(Select_menu_left);
    dicendomi che "cnConnessione" cannot be resolved.

    cnConnessione è definita nella classe che uso per la connessione tramite l'istanza di un bean, alla riga
    codice:
    	Connection cnConnessione = DriverManager.getConnection("jdbc:mysql://localhost/s......");
    Evidentemente non riesce ad "entrare" nella classe e trovare "cnConnessione".

    Come devo procedere in questo caso?

    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324
    Domanda:

    hai incluso il jar di mysql_connector nel tuo progetto?

    Perchè in caso non l'avessi fatto il problema potrebbe appunto risiedere li, nel senso che se non hai incluso la libreria di mysql_connector difficilmente riesci a connetterti a DB Mysql.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    La connessione funziona. Se metto tutto nella stessa pagina jsp funziona.
    Io però voglio creare una classe, da usare in tutte le pagine, per aprire la connessione.

    Quindi ho creato un .class
    codice:
    package Connessione;
    
    import java.sql.*;
    
    
    public class ApriConnessione{
    	
    private boolean EsitoConnessione = false;
    private String ConnessioneMessaggio ="";
    	
    	public boolean Connessione()
    	{
    			try
    				{
    				Class.forName("com.mysql.jdbc.Driver");
    				Connection cnConnessione = DriverManager.getConnection("jdbc:mysql://localhost/sito?user=root&password=rema1642");
    				EsitoConnessione=true;
    				ConnessioneMessaggio = "ok";
    				}
    				catch (Exception e)
    					{
    					EsitoConnessione=false;
    					ConnessioneMessaggio = e.getMessage();
    					}
    	return EsitoConnessione;
    	}

    e poi, in ogni singola pagina in cui è necessaria la connessione, con un bean
    codice:
     
    <jsp:useBean id="AperturaConnessione" class="Connessione.ApriConnessione"/>
    vorrei aprire la connessione, in modo da avere nella pagina jsp, solo la select che mi serve in quella specifica pagina.

    questo è il codice nella pagina jsp
    codice:
     
    String Select_menu_left = "select * from menu_left"; 
    PreparedStatement stmt_menu_left = cnConnessione.prepareStatement(Select_menu_left);	 <--- l'errore sta qui,non riconosce 	"cnConnessione" che sta nel .class
    ResultSet rs_menu_left = stmt_menu_left.executeQuery();

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324
    Prova a fare cosi.....


    codice:
    public class ApriConnessione{ 	 
         private boolean EsitoConnessione = false; 
         private String ConnessioneMessaggio =""; 	 
    
    public Connection Connessione() {  		
               Connection cnConnessione = null; 		
           try{ 			
                 Class.forName("com.mysql.jdbc.Driver"); 			
                 cnConnessione = DriverManager.getConnection("jdbc:mysql://localhost/sito?user=root&password=rema16242"); 			 			
                }catch (Exception e) {
     		EsitoConnessione=false; 				
                    ConnessioneMessaggio = e.getMessage();
                } 
         return cnConnessione; 
    }
    Poi nella jsp scrivi....

    codice:
    <% 	
         ApriConnessione apriConnessione = new ApriConnessione(); 	
         Connection conn = apriConnessione.connessione(); 	
         PreparedStatement ps = null; 
    %>   
    
    <% 
    String Select_menu_left = "select * from menu_left";  ps = conn.prepareStatement(Select_menu_left); 
    ResultSet rs_menu_left = ps.executeQuery(); 
    %>
    ovviamente devi fare l'import della classe ApriConnessione nella jsp....

  8. #8
    Io direi che è meglio che dai una ripassata a J2EE....
    Cmq per fare quello che vuoi fare devi farsi che il metodo che apre la connessione te la restituisca anche:
    codice:
    public boolean Connessione()
    	{
    			try
    				{
    				Class.forName("com.mysql.jdbc.Driver");
    				Connection cnConnessione = DriverManager.getConnection("jdbc:mysql://localhost/sito?user=root&password=rema16242");
    				EsitoConnessione=true;
    				ConnessioneMessaggio = "ok";
                                    return cnConnessione;
    				}
    				catch (Exception e)
    					{
    					EsitoConnessione=false;
    					ConnessioneMessaggio = e.getMessage();
                                            return null;
    					}
    	
    	}
    Per poi utilizzarla in questo modo
    codice:
    <jsp:useBean id="AperturaConnessione" class="Connessione.ApriConnessione"/>
    <%
    Connection cnConnessione = AperturaConnessione.Connessione();
     String Select_menu_left = "select * from menu_left"; 
    PreparedStatement stmt_menu_left = cnConnessione.prepareStatement(Select_menu_left);	 <--- l'errore sta qui,non riconosce 	"cnConnessione" che sta nel .class
    ResultSet rs_menu_left = stmt_menu_left.executeQuery();	
    %>

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    Impostando il metodo connessione come CONNECTION e richiamandolo nella pagina JSP con
    codice:
     Connection cnConnessione = AperturaConnessione.Connessione();
    funziona.
    Mi sembra il modo più semplice da utilizzare.

    francesco.muia hai ragione, il fatto è che devo proprio studiarlo, non ripassarlo, sto cercando di studiare le cose man mano che si presentano i problemi (so che è un metodo assurdo, ma per esegenze particolari devo fare così).

    Grazie a tutti per la pazienza e l'aiuto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.