Stampare una tabella estrapolata da sql

di il
11 risposte

Stampare una tabella estrapolata da sql

Salve ragazzi sto cercando di creare la mia prima applicazione in java che contenga un database, ho due forti dubbi, il primo è che non so' bene se la sintassi per eseguire una query da java è la seguente:

System.out.println("inserisci il numero del tavolo");
						posti= in.nextInt();
						System.out.println("inserisci la data");
						s_data= in.next();
						
						SimpleDateFormat dataS= new SimpleDateFormat("yyyy-MM-dd");
						app.setTime(dataS.parse(s_data));
						sql=" select idtavolo"+
								"from ha_una"+
							"	where idtavolo="+posti+" and  ha_una.dataprenotazione where data = '"+s_data+"');";
						rs=st.executeQuery(sql);
						System.out.println(rs);// stampa il valore di rs true o false
questa query serve per controllare se un tavolo in un dato giorno è disponibile, non sono ben sicuro che tutta la sintassi sia corretta.

il secondo è che non so' bene come far stampare tutta la tabella risultante della query

11 Risposte

  • Re: Stampare una tabella estrapolata da sql

    " select idtavolo"+
                            "from ha_una"+
                         "   where idtavolo="+posti+" and  ha_una.dataprenotazione where data = '"+s_data+"');";
    allora la query dovrebbe essere questa ma basta un attimo per controllarla su mysql

    per stampare la tabella invece ti consiglio di salvare i dati in un'array e poi stamparli come preferisci..

    es
    
    String [] tavoli;
    Statement statement = null;
    
    			try {
    
    				statement = connection.createStatement();
    				ResultSet rs = statement.executeQuery(qui ci va la tua query);
    				ArrayList<String> list = new ArrayList<String>();
    				while (rs.next()) {
    					list.add(rs.getString("idtavolo"));
    				}
    				tavoli = new String[list.size()];
    				tavoli = list.toArray(tavoli);
    
    			} catch (SQLException z) {
    			
    			}
    
    il consiglio è questo se devi prendere un solo elemento dal database,se invece devi prendere tanti elementi
    
    String [] tavoli;
    Statement statement = null;
    
    			try {
    
    				statement = connection.createStatement();
    				ResultSet rs = statement.executeQuery(qui ci va la tua query);
    			while (rs.next()) {
    
    				String s1 = rs.getString(1);
    				String s0 = rs.getString(2);
    				double s2 = rs.getDouble(3);
    				ecc....
    }
    
    e qui li salvi dentro un oggetto creato apposta es oggetto Partecipazione(String a,String b,double c)
    se sono tante tuple, crei un oggetto per ogni tupla e lo inserisci in un array Partecipazione[]
    } catch (SQLException z) {
    			
    			}
    
  • Re: Stampare una tabella estrapolata da sql

    Ho anche un altro problema, non so come collegare il database al codice java, sulle slide della prof dice che devo caricare i driver e posso cominciare, ma non sa spiegato dettagliatamente come fare?, e per la stampa non posso invece che creare un metodo per ogni query avere un metodo generico di stampa ??
  • Re: Stampare una tabella estrapolata da sql

    broke31 ha scritto:


    ho anche un altro problema, non so come collegare il database al codice java, sulle slide della prof dice che devo caricare i driver e posso cominciare, ma non sa spiegato dettagliatamente come fare?, e per la stampa non posso invece che creare un metodo per ogni query avere un metodo generico di stampa ??

    cosa intendi con metodo generico di stampa?

    prima devi scaricare il file jar dei driver poi devi importarlo nel tuo progetto (TASTO DX SUL PROGETTO,PROPRIETA',JAVA BUILD PATH E IMPORTI)

    mentre il codice è :
    public class Database {
    	private static Connection connection;
    	private Statement stmt;
    
    	/**
    	 * Construct and initialize the database and connects to it.
    	 */
    	public Database() {
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			connection = DriverManager
    					.getConnection("jdbc:mysql://localhost:3306/NOME DELLO SCHEMA",
    							"USERNAME", "PASSWORD");
    		} catch (ClassNotFoundException e) {
    			JOptionPane.showMessageDialog(null,
    					"Connection with database failed");
    }
    }
    }
    
  • Re: Stampare una tabella estrapolata da sql

    Ti ringrazio molto, il metodo generico che intendo è una cosa del genere, persa che la mia applicazione ha più query, ogni query alla fine mi da una tabella,e volevo creare una funzione che sia in grado di stampare il risultato in maniera generica cioè non deve essere associata ad una query particolare, ma potrebbe andare bene per ogni query , in modo da non dover riscrivere il codice di stampa per ogni query mi sono espresso in maniera capibile? spero di si grazie mille
  • Re: Stampare una tabella estrapolata da sql

    Basta che fai un metodo che prende come parametro un varargs di stringhe (o quello che ti serve), e chiami quel metodo dopo ogni invocazione di query passandogli il risultato come parametro.
    Oppure passi un array e con un ciclo for lo stampi
  • Re: Stampare una tabella estrapolata da sql

    Perdona l'ingoranza(sto apprendendo man mano) io avevo creato una funzione di stampa fatta nel seguente modo:
    public static void stampa(ResultSet rs) throws SQLException{
    		ResultSetMetaData rsmd = rs.getMetaData();
    		int numColonne=rsmd.getColumnCount();
    
    		int i=0;
    		ArrayList<String>valori=new ArrayList<String>();
    		while(rs.next())//il ciclo si ferma quando non ci sono più tuple
    		{
    
    			for(int j=1;j<=numColonne;j++)
    			{//le colonne partono da 1!
    				//le righe(i) da 0
    				valori.add(rs.getString(i));//ho preso l'elemento di posizione i 
    				i++;
    			}
    			for(int k=0;k<valori.size();k++)
    				System.out.print(valori.get(k));
    			System.out.println();
    		}
    
    
    	}
    non va bene?
  • Re: Stampare una tabella estrapolata da sql

    Va bene ma credo che anche i deve partire da 1 poichè il metodo rs.getstring() parte a contare da 1
  • Re: Stampare una tabella estrapolata da sql

    Quindi sia righe che colonne partono da 1?
  • Re: Stampare una tabella estrapolata da sql

    Credo proprio di si
  • Re: Stampare una tabella estrapolata da sql

    Ti ringrazio molto, adesso però ho l'ultimo problema da risolvere, è più che altro un problema grafico, in sostanza la tabella mi viene stampata non seguendo correttamente gli incolonnamenti
    del tipo
    idPrenotazione data ora cognome
                         4   2014/06/28 20:00:00 rossi
    
    
    non esiste un modo per poter avere un incolonnamento più "decente"?
  • Re: Stampare una tabella estrapolata da sql

    In teoria il 4 dovrebbe stamparlo a inizio riga..
    prova a mettere le parentesi al ciclo for della stampa lasciando fuori il println().

    oppure potresti usare le interfacce grafiche
Devi accedere o registrarti per scrivere nel forum
11 risposte