ConnessioneSqlleggiStringa

di il
3 risposte

ConnessioneSqlleggiStringa

Ciao a tutti , , volevo chiedere un aiuto a voi che siete più esperti di me, vi ringrazio anticipatamente se mi darete una mano con questa progettino.

Vorrei progettare questo piccolo programma che dopo aver stabilito una connessione al mio db personale, esegue una query ,che attraverso il metodo leggiquery , mi chiede di immettere come stringa nell'output di visualizzazione dell'editor.
La connessione funziona e mi riesco a scrivere ma dopo aver premuto invio l'applicazione continua a girare e non riesco a far immagazzinare la stringa da me scritta nell oggetto query usato nel main.
Sperio di essermi spiegato. Grazie
package javaapplication2;
import java.sql.*;
import java.io.*;
/**
*
* @author giuseppe
*/
public class connessione {
public static void main(String[] args) throws ClassNotFoundException, SQLException {

String driver="oracle.jdbc.OracleDriver";
Class.forName(driver);

String url="XXXXXXXX";
Connection conn= DriverManager.getConnection(url, "xxx","xxxx");

Statement stato=conn.createStatement();

connessione a=new connessione();
a.leggiQuery();



String query = a.leggiQuery();
ResultSet rs=stato.executeQuery(query);
while (rs.next()){
System.out.println(rs.getString("nomi"));
}


}
public String leggiQuery(){

InputStreamReader in=new InputStreamReader(System.in);
BufferedReader lettore =new BufferedReader(in);
String query=null;
try{
query=lettore.readLine();
while(query!=null){
query=lettore.readLine();
in.close();
lettore.close();
}

return query;

}


catch(IOException e){
e.printStackTrace();
}
finally{
try{
in.close();

}catch(IOException h){
h.printStackTrace();


}

}
return query;



}

}

3 Risposte

  • Re: ConnessioneSqlleggiStringa

    Ciao,
    il codice va fra i tag
    
    Your code here
    
    altrimenti non si capisce assolutamente nulla.

    Puoi essere più chiaro nell'esposizione?
    Ti giuro non ho capito una parola di ciò che hai detto.

    Ciao.
  • Re: ConnessioneSqlleggiStringa

    skorbe ha scritto:


                public String leggiQuery(){
                    
                 InputStreamReader in=new InputStreamReader(System.in);
                 BufferedReader lettore =new BufferedReader(in);
    La prima cosa più evidente è che la incatenazione dei reader da System.in fino a BufferedReader la fai più volte ... cioè ad ogni invocazione di leggiQuery.
    Questo è sbagliato, va fatto una volta sola. Quindi visto che crei già una istanza della tua classe principale 'connessione', allora fai la cosa più logica (e più giusta): questa creazione del BufferedReader falla nel costruttore e rendi il BufferedReader accessibile a tutti i metodi di istanza.
  • Re: ConnessioneSqlleggiStringa

    andbin ha scritto:


    skorbe ha scritto:


                public String leggiQuery(){
                    
                 InputStreamReader in=new InputStreamReader(System.in);
                 BufferedReader lettore =new BufferedReader(in);
    La prima cosa più evidente è che la incatenazione dei reader da System.in fino a BufferedReader la fai più volte ... cioè ad ogni invocazione di leggiQuery.
    Questo è sbagliato, va fatto una volta sola. Quindi visto che crei già una istanza della tua classe principale 'connessione', allora fai la cosa più logica (e più giusta): questa creazione del BufferedReader falla nel costruttore e rendi il BufferedReader accessibile a tutti i metodi di istanza.

    ok grazie:)
Devi accedere o registrarti per scrivere nel forum
3 risposte