Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026

    Passare parametri alle variabili SQL

    Salve.
    Sto cercando di passare dei valori inseriti da tastiera a delle variabili SQL.
    Quello che ho potuto vedere in alcuni esempi, però con passaggi di valori di default:
    codice:
    SQL = "INSERT INTO locazioni(codice_locazione, settore, numero_scaffale, numero_ripiano) VALUES(?,?,?,?)";
    
    //Creazione dello statement
    SQLPreparedStatement = con.prepareStatement(SQL);
    
    /*Impostazione dei parametri (valori da sostituire ai punti interrogativi).
    * La numerazione parte da 1.
    */
    SQLPreparedStatement.setString(1, "COD123");
    SQLPreparedStatement.setString(2, "SET-ALIM");
    SQLPreparedStatement.setInt(3, 33);
    SQLPreparedStatement.setInt(4, 44);
    
    //Esecuzione dello statement
    SQLPreparedStatement.executeUpdate();
    
    //Chiusura dello statement
    SQLPreparedStatement.close();
    Qualcuno ha qualche idea?
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Passare parametri alle variabili SQL

    Originariamente inviato da Ironmax
    Sto cercando di passare dei valori inseriti da tastiera a delle variabili SQL.
    Quello che ho potuto vedere in alcuni esempi, però con passaggi di valori di default:
    codice:
    SQLPreparedStatement.setString(1, "COD123");
    SQLPreparedStatement.setString(2, "SET-ALIM");
    SQLPreparedStatement.setInt(3, 33);
    SQLPreparedStatement.setInt(4, 44);
    E quale è il dubbio? Ad esempio una stringa passata come secondo argomento di quel setString() ... che sia una stringa "letterale" (cablata nel sorgente), che sia una stringa ottenuta come risultato della invocazione di un metodo e come caso particolare, ottenuta da un metodo che "legge" (direttamente o no) dallo standard-input (ad esempio nextLine() di Scanner o readLine() di BufferedReader) ..... cosa cambia? Nulla.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Passare parametri alle variabili SQL

    Originariamente inviato da Ironmax
    Salve.
    Sto cercando di passare dei valori inseriti da tastiera a delle variabili SQL.
    Quello che ho potuto vedere in alcuni esempi, però con passaggi di valori di default:
    codice:
    SQLPreparedStatement.setString(1, "COD123");
    SQLPreparedStatement.setString(2, "SET-ALIM");
    SQLPreparedStatement.setInt(3, 33);
    Qualcuno ha qualche idea?
    Grazie.

    È sufficiente passare ai vari metodi setString/Int/Double ecc le variabili in cui hai salvato quello che hai letto da tastiera, non capisco dove sia il problema
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Solo che i miei parametri si trovano in un array list.
    Questo qua sotto è il codice incriminato:
    codice:
    			case 5:
    				ListPers = 0;
    				if (arli.size() == 0)// Verifica se c'è qualcosa nell' ArrayList
    				{
    					Console.println("Non ci sono dati in memoria.");
    					Console.println("        Elenco Vuoto.       ");
    					break;
    				}
    				for (Persona pp : arli) {
    					ListPers = ListPers + 1;
    					Console.println("Persona numero " + ListPers + " -> " +    pp.GetNome());
    				}
    
    				Connection con;
    				PreparedStatement SQLPreparedStatement; 
    				String SQL;
    				try {
    					//Class.forName("com.mysql.jdbc.Driver");
    					 Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    					// Apertura della connessione al database
    					con = DriverManager.getConnection("jdbc:mysql:///persona",
    							"root", "");
    					System.out.println("Connessione OK!");
    
    					// Esempio di query INSERT
    					SQL = "INSERT INTO dati_persona(cognome_persona,   nome_persona)" +
    							" VALUES(?,?)";
    
    					//Creazione dello statement
    					SQLPreparedStatement = con.prepareStatement(SQL);
    					
    					SQLPreparedStatement.setString(1, cognome);
    					SQLPreparedStatement.setString(2, nome);
    				/*	SQLPreparedStatement.setString(sesso, null);
    					SQLPreparedStatement.setInt(4, 44);*/
    
    					//Esecuzione dello statement
    					SQLPreparedStatement.executeUpdate();
    
    					//Chiusura dello statement
    					SQLPreparedStatement.close();
    
    					System.out.println("Dati inseriti!");			
    
    
    					// Chiusura della connessione alla base di dati.
    					con.close();
    				} catch (Exception ex) {
    					System.out.println(ex.getMessage());
    				}
    
    				break;
    Mi sembra che c'è qualcosa di sbagliato ma non riesco trovare l'errore.
    Quando vado ad inserire i valori nel database mi genera questo tipo di output:
    codice:
    Persona numero 1 -> massimo
    org.gjt.mm.mysql.Driver

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Ironmax
    codice:
    					SQLPreparedStatement.setString(1, cognome);
    					SQLPreparedStatement.setString(2, nome);
    Mi spiace ma dal codice postato non si capisce che cosa sono (come tipo) cognome e nome.
    In quel contesto devono essere dei String .... se non lo sono, hai chiaramente sbagliato e devi agire di conseguenza.
    Se hai una "lista" di persone, devi ovviamente ripetere quella parte di preparazione/esecuzione/chiusura dello statement per ognuna delle persone.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.