Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Passare variabile in una query

    Ciao a tutti! Vorrei sapere come si fa a passare ad una query con una SELECT un parametro, ho scritto questo metodo, che in sostanza prende come parametro un username e deve controllare sul database se č presente e in che ruolo.

    codice:
      public String isUser(String username){         
             String ruolo="";
            
             
    
    
        
        
        try { 
            
    // registrazione driver JDBC per Derby DB        
    DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
    Connection conn = DriverManager.getConnection(url, user, pwd);
    Statement st = conn.createStatement();
    ResultSet rs = st.executeQuery("SELECT* FROM TABELLA_UTENTI WHERE USERNAME="+username+"");
    
    
                    while (rs.next()) {
                    ruolo += rs.getString("RUOLO");
                    }
    
    
    
    
        
    
    
    rs.close();
    st.close();
    conn.close();
        
        } 
         catch (SQLException e) {
           System.out.println(e.getMessage());
     }
        
        return ruolo;
    }
    Non funziona, sono sicuro che il problema sia il passaggio del parametro, qual č la sintassi corretta?

  2. #2
    E' un problema che non riguarda i database ma java.

    Credo quindi sia piu' opportuno postare nella sezione java.

    Comunque il tuo problema si risolve banalmente con l'utilizzo di query parametriche.

    Quindi utilizzerai PreparedStatement...
    Non si puņ risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Quote Originariamente inviata da bomberdini Visualizza il messaggio
    E' un problema che non riguarda i database ma java.

    Credo quindi sia piu' opportuno postare nella sezione java.

    Comunque il tuo problema si risolve banalmente con l'utilizzo di query parametriche.

    Quindi utilizzerai PreparedStatement...
    Grazie...perņ..non riesco a farla funzionare...ho scritto questo:

    codice:
     public String isUser(String username){         
             String ruolo="";
            
             
    
    
        
        
        try { 
            
    // registrazione driver JDBC per Derby DB        
    DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
    Connection conn = DriverManager.getConnection(url, user, pwd);
    Statement st = conn.createStatement();
    
    
    String selectSQL = "SELECT *FROM TABELLA_UTENTI WHERE USERNAME=?";
    PreparedStatement preparedStatement = conn.prepareStatement(selectSQL);
    preparedStatement.setString(1, username);
    ResultSet rs = preparedStatement.executeQuery(selectSQL );
    
    
                while (rs.next()){
                    ruolo += rs.getString("RUOLO");
                }
                   
    rs.close();
    st.close();
    conn.close();
        
        } 
         catch (SQLException e) {
           System.out.println(e.getMessage());
     }
        
        return ruolo;
    }
    Come sintassi non dovrebbe andare bene? Perņ il campo RUOLO non viene preso....:O

  4. #4
    magari ti continuo a rispondere nella sezione java... chiediamo ad un mod di spostare la conversazione
    Non si puņ risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

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.