Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Perņ il problema permane negli inserimenti con i preparedstatement, ho questo codice:

    codice:
     public void addPrenotazione(String id,String nome, String cognome,              String lista, String data, String ora, String consegnata){
             
            try{ 
               DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
               Connection conn = DriverManager.getConnection(url, user, pwd);
             
              String sql = "INSERT INTO TABELLA_PRENOTAZIONI VALUES (?, ?, ?, ?, ?, ?, ?)";
                PreparedStatement prepStat = conn.prepareStatement(sql);
                prepStat.setString(1, id);
                prepStat.setString(2, nome);
                prepStat.setString(3, cognome);
                prepStat.setString(4, lista);
                prepStat.setString(5, data);
                prepStat.setString(6, ora);
                prepStat.setString(8, consegnata);
             
                prepStat.executeUpdate();
        
                prepStat.close();
                conn.close();
         
         
         }
          catch(SQLException e){System.out.println(e.getMessage());}
            
         }
    In cui ho saltato il parametro relativo all'attributo che si autoincrementa, ma non viene creata alcuna voce nel database...
    Ultima modifica di Darčios89; 17-01-2014 a 19:20

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    codice:
    String sql = "INSERT INTO TABELLA_PRENOTAZIONI VALUES (?, ?, ?, ?, ?, ?, ?)";
    
                prepStat.setString(8, consegnata);
    Se ci sono 7 '?' .... l'indice 8 non ci sta ....

    E comunque se in una insert non metti tutti i campi, ne salti alcuni o non li metti nell'ordine di dichiarazione nella tabella, allora dovresti elencare nell'insert i nomi delle colonne.
    Ultima modifica di andbin; 17-01-2014 a 22:13
    Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Se ci sono 7 '?' .... l'indice 8 non ci sta ....

    E comunque se in una insert non metti tutti i campi, ne salti alcuni o non li metti nell'ordine di dichiarazione nella tabella, allora dovresti elencare nell'insert i nomi delle colonne.
    Dunque, ho controllato il database e la struttura č questa:

    codice:
    ID NOME COGNOME LISTA DATA ORA TOTALE CONSEGNATA NUMERO
    Dove numero č un campo che ho definito incrementale come nella guida che andbin mi ha linkato, quindi con questa istruzione e non ci sono stati errori:

    codice:
      st.executeUpdate("CREATE TABLE TABELLA_PRENOTAZIONI" + "(ID VARCHAR(30), " + " NOME VARCHAR(30) NOT NULL, " +" COGNOME VARCHAR(30) NOT NULL, "+"LISTA VARCHAR(60),"+"DATA VARCHAR(8),"+"ORA VARCHAR(5),"+"TOTALE DOUBLE,"+"CONSEGNATA VARCHAR(2),"+"NUMERO INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), "+"PRIMARY KEY(ID,DATA))");
    Per inserire una prenotazione di una pizza nel database c' č questo metodo dove non ho inserito il parametro NUMERO visto che č incrementale, quindi:

    codice:
    public void addPrenotazione(String id,String nome, String cognome,              String lista, String data, String ora, String consegnata){
             
            try{ 
               DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
               Connection conn = DriverManager.getConnection(url, user, pwd);
               
               double totale=0;
               StringTokenizer str=new StringTokenizer(lista,", ");
               
                while (str.hasMoreTokens()) {
                    totale+=totale+getPrezzo(str.nextToken());
                }
                
             
              String sql = "INSERT INTO TABELLA_PRENOTAZIONI VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
                PreparedStatement prepStat = conn.prepareStatement(sql);
                prepStat.setString(1, id);
                prepStat.setString(2, nome);
                prepStat.setString(3, cognome);
                prepStat.setString(4, lista);
                prepStat.setString(5, data);
                prepStat.setString(6, ora);
                prepStat.setDouble(7, totale);
                prepStat.setString(8, consegnata);
                
                
             
                prepStat.executeUpdate();
        
                prepStat.close();
                conn.close();
         
         
         }
          catch(SQLException e){System.out.println(e.getMessage());}
            
         }
    Perņ non funziona...

  4. #4
    Qualcuno saprebbe aiutarmi su quest'ultima cosa?

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.