Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110

    Java & mySQL - selezionare elementi da db e inserirli in un carrello

    Ciao!
    come da oggetto vorrei creare una finestra che mi permetta di selezionare elementi da un db listaprodotti ed inserirli in un "carrello" per poi procedere all'acquisto.
    Al momento ho creato:
    - una classe per inserire i prodotti
    - una classe che tramite jtable mi visualizzi il db

    Non ho proprio idea come far si che data la listaprodotti visualizzata del db io possa poi selezionare gli elementi scegliendone la quantità... per l'inserimento nel carrello presumo basti adeguare la classe "acquistoProdotto".
    Potreste darmi qualche dritta? Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Sevenis Visualizza il messaggio
    Non ho proprio idea come far si che data la listaprodotti visualizzata del db io possa poi selezionare gli elementi scegliendone la quantità... per l'inserimento nel carrello presumo basti adeguare la classe "acquistoProdotto".
    Potreste darmi qualche dritta? Grazie
    A parte l'aspetto grafico delle finestre (layout componenti, ecc...) che questo chiaramente è a tua discrezione e comunque come si può dire "va a gusti", ci sono altre questioni anche più importanti.

    Innanzitutto mi pare che in un'altra discussione ti abbia già suggerito di fare classi specifiche dedicate a realizzare le classiche operazioni "CRUD" su una certa tipologia di dato. Riguardo questi aspetti, a livello architetturale si può anche arrivare a livelli un po' sofisticati, sfruttando delle interface e arrivando anche a rendere "switchabili" le implementazioni. Tutto questo ovviamente NON è obbligatorio. Il minimo ma proprio minimo che si può fare è una semplice classe es. ProdottoDao per gestire le operazioni CRUD su DB per un tipo Prodotto. Anche senza interface o altro di avanzato.
    Hai fatto qualcosa del genere? Perché se non l'hai fatto, allora vuol dire che andrai a fare un bel miscuglio di gestione UI, gestione DB, gestione eccezioni ecc... magari all'interno di un singolo metodo! E non è proprio una buona cosa ...

    Invece riguardo JTable c'è da dire che non è tanto JTable la questione ma il table model. Il table model è l'entità che materialmente gestisce e mantiene i dati. Ci sono implementazioni predefinite in JTable, esiste la implementazione DefaultTableModel ma hanno una struttura o fissa (come quando si usano certi costruttori di JTable) o comunque troppo generalizzata (trattando solo degli Object).

    Se sai già di dover gestire delle "collezioni" di oggetti (es. un List<Prodotto>) ci sono diverse soluzioni migliori:
    1) implementare un table model specifico per ciascuna tipologia di dato (es. un ProdottoTableModel, XyzTableModel ecc...)
    2) implementare un table model "generico" (nel senso dell'uso dei generics di Java 5) rendendolo quindi riutilizzabile per più tipi differenti.

    in alternativa ben diversa:

    3) implementare un table model che usa direttamente JDBC e sfrutta i ResultSet "scrollable" (e magari anche "updatable") in modo che il table model acceda "dal vivo" ai record come/quando gli serve.

    Sono soluzioni da valutare e da scegliere in base alle tue conoscenze ma anche, soprattutto, al numero di tipi di dati da gestire. Se ne hai solo 1, 2 o 3, potrebbe bastare la 1). Se hai (o pensi di avere in futuro) 5, 6, 10, ecc... tipi di dati, allora è meglio scegliere la 2) o 3).

    È chiaro che è necessario avere delle discrete conoscenze sui table model. Se già non sai cosa sono, come funzionano, come si implementano .... bisogna studiare un po'.
    Ultima modifica di andbin; 24-01-2017 a 21:53
    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.