Stampare a video una SELECT con Java

di il
3 risposte

Stampare a video una SELECT con Java


public void cr_entita_cerca(String cerca){
        
        String u = "jdbc:oracle:thin:@localhost:1522:Orcl";
        String n = "SYSTEM";
        String p = "Scarpone2";
        
        try{
            Connection();
            Connection conn = DriverManager.getConnection(u, n, p);
            
            PreparedStatement inserted = conn.prepareStatement("SELECT * FROM Entita WHERE nome = ?");
            inserted.setString(1,cerca);
            
            JOptionPane.showMessageDialog(null,inserted.getString()); -----------QUI
            
            inserted.executeUpdate();
        }catch (Exception e){
            System.out.println("ERROR: " +e);
        }
    }
Nella riga segnata starei provando a stampare a video una SELECT che prendo da una tabella. Non voglio usare il System.out.println perché dovrebbe visualizzarla l'utente che usa il programma. Come vedete provo ad usare il JOptionPane.showMessage() ma mi dà errore in ocmpilazione cosa potrei utilizzare invece?

3 Risposte

  • Re: Stampare a video una SELECT con Java

    giulio0 ha scritto:


               
                PreparedStatement inserted = conn.prepareStatement("SELECT * FROM Entita WHERE nome = ?");
                inserted.setString(1,cerca);
                
                JOptionPane.showMessageDialog(null,inserted.getString()); -----------QUI
                
                inserted.executeUpdate();
    
    No, non ha proprio senso. inserted è il PreparedStatement e non ha un getString (ha ovviamente il toString() ma NON stampa certo i risultati!!).

    Devi proprio eseguire la query, scorrere il ResultSet e comporre una stringona con tutti i dati. Poi quella la puoi passare al showMessageDialog.

    P.S. stavi usando executeUpdate per una SELECT !!
  • Re: Stampare a video una SELECT con Java

    
    public void cr_entita_cerca(String cerca){
            
            String u = "jdbc:oracle:thin:@localhost:1522:Orcl";
            String n = "SYSTEM";
            String p = "Scarpone2";
            String result = null;
            
            try{
                Connection();
                Connection conn = DriverManager.getConnection(u, n, p);
                
                PreparedStatement inserted = conn.prepareStatement("SELECT * FROM Entita WHERE nome = ? ");
                inserted.setString(1,cerca);
                
                ResultSet rset = inserted.executeQuery();
                
                while(rset.next()){
                    result = rset.getString(1);
                }
                
                JOptionPane.showMessageDialog(null, result);
            }catch (Exception e){
                System.out.println("ERROR: " +e);
            }
        }
    Così funziona ma solo per metà: mi restituisce solo la prima colonna mentre nel database sono due le colonne
  • Re: Stampare a video una SELECT con Java

    giulio0 ha scritto:


    Così funziona ma solo per metà: mi restituisce solo la prima colonna mentre nel database sono due le colonne
    No, non funziona correttamente. Hai fatto un assegnamento che sostituisce ogni volta la stringa.
    Lo ripeto, devi comporre una grossa stringa accodando tutti i dati che hai nel record, con un separatore in mezzo magari. E magari un \n a ogni riga (che va bene per il JOptionPane).

    Devi usare la concatenazione delle stringhe o ancora meglio un StringBuilder.
Devi accedere o registrarti per scrivere nel forum
3 risposte