Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: funzione split

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189

    funzione split

    ciao a tutti vorrei chiedervi dei consigli riguardo a questo programma

    codice:
    import java.sql.*; 
    import java.util.*;
    
    public class Simple{ 
    public static void main(String args[]){ 
    
    try {
    // uso il driver ODBC per connettermi al server
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    
    
    
    // effettuo la connessione con il mio database, specificando il tipo di driver a cui mi collego e il percorso
    Connection con = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\Programmi\\dbricette_1_3_049.mdb");
     
    
     
     // assegno a una stringa la query
    String query = "Select Nome,Tipo_piatto,Ingredienti from Ricette";
    
    
    
    
    // Lo statement s è un oggetto che permette di impostare una query SQL, i risultati vengono restituiti dal
    // metodo executeQuery() e memorizzati nel ResultSet
    Statement s = con.createStatement(); 
    ResultSet rs = s.executeQuery(query); 
    
    
    
    // Con un ciclo while è possibile scorrere tutto il ResultSet per ottenere i valori restituiti.
    while(rs.next()){ 
    
    
    
    
    // assegno alle seguenti stringhe i campi che sto selezionando, dalla tabella Ricette
    String valore1= rs.getString("Nome");
    String valore2= rs.getString("Tipo_Piatto");
    String valore3= rs.getString("Ingredienti");
    
    
    
    
    
    // assegno alla stringa SQL L'INSERT Che mi permette di inserire all'interno della tabella Newricette 
    // le colonne che ho selezionato dalla tabella Ricette.
    String SQL = "INSERT INTO Newricette (Nome, Tipo_Piatto, Ingredienti) VALUES (?,?,?)";
    
    
    
    
     //Per eseguire delle interrogazioni o modifiche sulla base di dati si crea per prima cosa un oggetto 
     //di tipo Statement ,utilizzando il metodo createStatement dell'oggetto di tipo Connection ottenuto 
     //in precedenza.
       PreparedStatement ps = con.prepareStatement(SQL);
    	
           
     //Per inserire i valore mancanti si utilizzano i metodi setXXX (dove XXX è un tipo di dato) a cui vanno 
     //passati due parametri: il primo è l'indice del parametro della query che si vuole specificare, il secondo
     // è il valore che gli si vuole dare, che precedentemente ho assegnato alle stringhe valore 1, valore2 e valore 3     
           ps.setString(1, valore1);
           ps.setString(2,valore2);
           ps.setString(3,valore3);
           ps.execute();   // esegue l'interrogazione sul database
      
    
    // mi divide le stringhe contenute nel campo Ingredienti  
    	String str = valore3;
      String[] temp;
     
      /* delimiter */
      String delimiter = "=";
      /* given string will be split by the argument delimiter provided. */
      temp = str.split(delimiter);
      /* print substrings */
      for(int i =0; i < temp.length ; i++)
        System.out.println(temp[i]);
     
    }	
    
    
    // chiudo la connessione con il database in access
    con.close(); 
    
     }
     
     
    catch (Exception ex) { 
    System.out.println(ex.getMessage()); 
    } 
    }
    }
    ragazzi vorrei chiedervi, come faccio ad assegnare il vettore temp[i] che contiene la stringa separata a un campo di una tabella?? grazie mille

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    devi fare le insert o gli update

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    inserendole dove mi scusi?? io da questo programma mi sono ottenuto un vettore temp [i] e fino a qui ci sono, questo vettore contiene un'intera colonna di una tabella senza delimitatori....ora x andarli a mettere in un'altra colonna di una tabella..., devo estrarre di nuovo i dati dal vettore, o posso riversarlo direttamente nella tabella?? grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    devi fare una insert di temp[i] nella nuova tabella.
    Insert molto simile a quella fatta (riuso del codice)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    si si ho capito, una curiosita' la stringa delimiter puo' contenere piu' delimitatori?? se e' si in che modo?? nei manuali fanno sempre esempi con un solo carattere...
    x esempio devo levare i delimitatori da una stringa tipo pippo==\n\rpaolo== ecc ecc

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da liga_87
    si si ho capito, una curiosita' la stringa delimiter puo' contenere piu' delimitatori?? se e' si in che modo?? nei manuali fanno sempre esempi con un solo carattere...
    x esempio devo levare i delimitatori da una stringa tipo pippo==\n\rpaolo== ecc ecc
    il miglior modo per saperlo è
    1. consultare la documentazione
    2. fare un esempio con quello che viene in mente ed eseguendolo

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    valia cmq io quando mi date delle dritte su qualcosa, mi documento prima nn faccio le cose a caso....

    cmq ho provato a usare una insert per inserire il vettore ottenuto, in una colonna di una tabella, ma la funzione insert non consente di mettere tra i paramentri un temp[i], ma soltanto valori....

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    temp[i] è una stringa, se devi inserire in una tabella devi fare una query di insert di cui hai un esempio
    ovviamente dove fai l'insert deve essere del tipo adatto.
    questo intendo per mancanza di basi, non riuscire ad avere chiaro cose che già hai fatto 10 righe sopra

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    valia xche' dici che nn ho capito nulla dell'insert?? io ho capito benissimo cosa fa il mio programma, nella linea a cui ti riferisci tu ,ho semplicemente assegnato a una stringa sql una query che mi interroga il database e mi va a inserire nelle 3 colonne della tabella, le 3 colonne che io precedentemente ho selezionato dalla prima tabella!! adesso il problema e' un po' diverso... premetto che ho studiato prima i vettori, e so come si dichiarano e tutto!!! io posso effettuare un interrogazione al database inserendo i valori che sono all'interno del vettore, ma il problema sta nel fatto ( ho 3 manuali di fondamenti di programmazione java ) che nella query io nn posso mettere un vettore...

    string sql= "insert into Newricette ( ingredienti) values (?)"

    questa e' la sintassi corretta!!!

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Il problema non è la comprensione Java: a te mancano le basi di cosa sia e come si gestisce un database.

    Un database non è semplicemente una collezione di tabelle che puossono essere "lette" per righe o per colonne: ciascuna riga è un record e ciascuna colonna è un campo di un record. Una colonna di valori (quindi un insieme di valori dello stesso campo di record diversi) non ha nessun significato.

    L'inserimento all'interno delle tabelle si effettua sempre e solo per Record (quindi righe intere, non per colonne, che non avrebbe nessun senso), questo perchè l'unità di informazione di una tabella è sempre e solo una riga intera.

    Tutto questo si dà sempre per scontato quando si ha a che fare con i database, ma se uno non ha una preparazione di base su cosa sia un database, continuerà a pensare che sia una collezione disorganizzata di celle.

    Quello che dovrai fare tu, quindi, è effettuare N inserimenti (uno per ciascun record).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.