Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Aiuto conversione date e Database

    Salve ragazzi,

    come da titolo ho un problema col campo date.

    Utilizzo come database il database Apache Derby. In maniera tale da rendere il mio programma portabile.

    Ho in una tabella, il campo date.

    Per inserire le date le devo inserire nel seguente formato

    aaaa/mm/gg

    quando poi vado a visualizzare tutte le dati in una jtable vorrei che la data venisse visualizzata nel seguente formato gg/mm/aaaa

    come posso fare??

    Ho trovato la sintassi in MySql ma non è la stessa del JavaDb

    Mi potete aiutare

  2. #2

    Re: Aiuto conversione date e Database

    Originariamente inviato da bircastri
    Salve ragazzi,

    come da titolo ho un problema col campo date.

    Utilizzo come database il database Apache Derby. In maniera tale da rendere il mio programma portabile.

    Ho in una tabella, il campo date.

    Per inserire le date le devo inserire nel seguente formato

    aaaa/mm/gg

    quando poi vado a visualizzare tutte le dati in una jtable vorrei che la data venisse visualizzata nel seguente formato gg/mm/aaaa

    come posso fare??

    Ho trovato la sintassi in MySql ma non è la stessa del JavaDb

    Mi potete aiutare
    Il problema qual'è ?
    Inserire le date nel database con l'insert o update, oppure cambiare il formato della data ?

    Per cambiare formato alla data usa SimpleDateFormat con i metodi parse e format
    lolide
    Java Programmer

    Informati

  3. #3
    il problema è questo.

    ho questa tabella

    # Creo tabella Operazioni
    CREATE TABLE Operazioni(CodOperazione int NOT NULL PRIMARY KEY
    GENERATED ALWAYS AS IDENTITY
    (START WITH 1, INCREMENT BY 1),
    CodiceCliente varCHAR(60) NOT NULL,
    DataOperazione DATE,
    Descrizione VARCHAR(80),
    Quantita INT,
    Importo DECIMAL(11,3),
    SommaDare DECIMAL (11,3),
    SommaAvere DECIMAL (11,3));


    Ad inserire le date non ho problemi, leggendo la documentazione del database posso inserire le date nel seguente formato

    aaaa/mm/gg

    mm-gg-aaaa

    gg.mm.aaaa

    Se faccio la query (SELECT * FROM Operazioni);

    ottengo un Vector di 8 valori per colonna.

    Poi faccio table = new tableExample(vettore,v);


    in questa tabella mi viene visualizzato il campo data nel seguente formato aaaa/mm/gg

    io vorrei visualizzarlo nel seguente formato

    gg mm aaaa

    o gg/mm/aaaa

    l'importante èche viene visualizzato prima il giorno poi il mese poi l'anno

  4. #4

    Re: Re: Aiuto conversione date e Database

    Originariamente inviato da lolide
    Il problema qual'è ?
    Inserire le date nel database con l'insert o update, oppure cambiare il formato della data ?

    Per cambiare formato alla data usa SimpleDateFormat con i metodi parse e format
    Allora per ogni data usa SimpleDateFormat
    lolide
    Java Programmer

    Informati

  5. #5
    allora io ho pensato in questo modo.

    Ottengo il vettore v.

    Associo alla mia tabella un tablecellrender, per ogni data inserita nella colonna 2 ad esempio applico la conversione?????

    E' un pò macchinoso ma dovrebbe funzionare

  6. #6
    Originariamente inviato da bircastri
    allora io ho pensato in questo modo.

    Ottengo il vettore v.

    Associo alla mia tabella un tablecellrender, per ogni data inserita nella colonna 2 ad esempio applico la conversione?????

    E' un pò macchinoso ma dovrebbe funzionare
    Uhm ...
    Il vettore che ti restituisce che classe è ?
    Potresti fare un override della funzione get di quel vettore, e quando restituisce una data gli fai cambiare formato... però dipende da che classe sia.
    Poi dare qualche altro dettaglio riguardo al codice ?

    Se fosse un Vector o un List di oggetti di una classe che contiene le info, potresti fare una cosa del genere
    lolide
    Java Programmer

    Informati

  7. #7
    Certo che si può avere allora io lancio il seguente comando:

    codice:
    v = db.eseguiQuery( "SELECT  CodOperazione,CodiceOperazione,DataOperazione,CodiceCliente,Descrizione,Prezzo FROM NotaCassa ORDER BY DataOperazione" );

    la classe in cui è implementato il metodo eseguiQuery è:

    codice:
    public static Vector eseguiQuery(String query) {
    	      Vector v = null;      
    	      int colonne = 0;
    	      try {
    	    	  
    	         Statement stmt = conn.createStatement();     // Creo lo Statement per l'esecuzione della query
    	         stmt.executeUpdate("SET SCHEMA commercialista");
    	         ResultSet rs = stmt.executeQuery(query);   // Ottengo il ResultSet dell'esecuzione della query
    	         v = new Vector();
    	         ResultSetMetaData rsmd = rs.getMetaData();
    	         //rsmd = rs.getMetaData();
    	         colonne = rsmd.getColumnCount();
    	//qualche modifica qui, in modo che si lavori su Vector piuttosto
    	//che su String[]
    	         while(rs.next()) {   // Creo il vettore risultato scorrendo tutto il ResultSet
    	            Vector record = new Vector();
    	            for (int i=0; i<colonne; i++) {
    	                record.add(rs.getString(i+1));
    	            }
    	            v.add(record);
    	         }
    	         rs.close();     // Chiudo il ResultSet
    	         stmt.close();   // Chiudo lo Statement
    	      } catch (Exception e) { e.printStackTrace(); String errore = e.getMessage(); }
    
    	      return v;
    	   }
    sarebbe molto meglio effettuare un overridding direttamente sul vector

  8. #8
    Quindi c'è un Vector in un Vector.

    Secondo me sarebbe meglio fare un oggetto tipo CommercialistaScheme e ci metti le varie info , ma comunque è uguale.
    Ti consiglio di usare i List che i Vector sono diventati obsoleti.

    Estendi la classe Vector (o List) creando una tua lista, e fai l'override del metodo get creando un codice tipo questo:
    codice:
        public class MyList extends ArrayList (oppure Vector {
    
            @Override
            public Object get(int index) {
                CommercialistaScheme info = (CommercialistaScheme) super.get(index);
    
                try {
                    String data = info.data;
                    Date vecchiaData = new SimpleDateFormat("yyyy/MM/dd").parse(data);
                    data = new SimpleDateFormat("dd/MM/yyyy").format(vecchiaData);
                    info.data = data;
                } catch (Exception ex) {
                    System.out.println("Errore parsando la data");
                    ex.printStackTrace();
                }
    
                return info;
            }
        }
    dovrebbe funzionare

    Originariamente inviato da bircastri
    sarebbe molto meglio effettuare un overridding direttamente sul vector
    Infatti con il TableCellRenderer poi potrebbe risultare più lento

    lolide
    Java Programmer

    Informati

  9. #9
    Ti rringrazio molto per il suggerimento

    Mi potresti dare maggiori info sull'utilizzo delle Liste... So cosa sono perchp le ho studiate,

    però mi domando cambiando l'utilizzo dei vector con le liste ora mi toccherebbe modificare tutti i metodi della classe database s anche i miei tableModel giusto????

  10. #10
    Originariamente inviato da bircastri
    Ti rringrazio molto per il suggerimento

    Mi potresti dare maggiori info sull'utilizzo delle Liste... So cosa sono perchp le ho studiate,

    però mi domando cambiando l'utilizzo dei vector con le liste ora mi toccherebbe modificare tutti i metodi della classe database s anche i miei tableModel giusto????
    Le differenze sostanzialmente sono che i Vector sono synchronized, gli ArrayList invece no, e quest'ultimi sono più efficienti.

    Quindi lavorando in multithreading, i Vector sono meglio (anzi sei obbligato ad usarlo, altrimenti gli ArrayList che non sono synchronized ti daranno problemi se due o + thread accedessero per aggiungere, modificare o leggere degli oggetti in lista).

    Lavorando con un solo thread invece, potresti usarli entrambi, ma siccome gli ArrayList sono + performanti, uno preferisce usare questi.

    Comunque sono differenze che non si notano con piccoli array, se il programma ormai è in sviluppo avanzato non ti mettere a cambiare tutto
    lolide
    Java Programmer

    Informati

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.