Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305

    Implementazione classe elemento db

    Salve ho il seguente quesito : ho un database con una tabella 'cliente' che contiene tutte le informazioni come nome, cognome, tel, mail, id(che si genera automaticamente),data_appuntamento, ora_appuntamento. Secondo voi è un errore implementare una classe che rappresenti un oggetto cliente del db tipo cosi:
    codice:
    public final class ClienteDB{    
        private String nome;
        private String cognome;
        private String telefono;
        private String mail;
        private java.sql.Date dataAppuntamento;
        private java.sql.Time oraAppuntamento;
          .......
    }
    aggiungendo ai metodi set e get tutta una serie di controlli per rispettare i vincoli di integrità della tabella.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    La classe in sé è assolutamente ok, con i campi che hai messo.
    Quando però parli di "controlli per rispettare i vincoli di integrità" bisogna vedere un attimo. La tua classe ClienteDB non dovrebbe però agire direttamente su db, ovvero tutti i vari metodi di "add", "find", "delete" ecc.... non dovrebbero essere qui dentro.
    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
    Registrato dal
    Jan 2014
    Messaggi
    305
    si si lo so per questo ho creato una classe GestoreDb con dei metodi di tipo static (anche se un po fuori dall oop) che permettono di effettuare operazioni sul db, creando un oggetto static di tipo connection al suo interno , senza dover riaprire ogni volta una connessione. Quello che intendo io in questo caso è che uso delle espressioni regolari ,all'interno dei metodi set e get di questa classe per verificare che quando imposto un campo questo rispetta i requisiti del corrispondente campo del db. Esempio:
    codice:
      public void setNome(String nome) throws IllegalArgumentException{
            boolean error=!Pattern.matches(regexNome, nome);
            if(error)
                throw new IllegalArgumentException("Formato del campo Nome"
                        + " non valido");
            this.nome = nome;
        }

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    con dei metodi di tipo static (anche se un po fuori dall oop)
    Ehm .... sì, non proprio OOP ....

    Quote Originariamente inviata da linux_r Visualizza il messaggio
    Quello che intendo io in questo caso è che uso delle espressioni regolari ,all'interno dei metodi set e get
    Perché anche get?
    Comunque se si tratta di "validazioni" dei parametri, va bene, nel senso che è ok. Anche l'uso di IllegalArgumentException è ok.

    Già che usi le regex, aggiungo 2 note:
    - se il "input" al Matcher (es. il tuo nome) è null, viene lanciato NullPointerException.
    - se la regex è abbastanza complessa, puoi anche pre-compilare il Pattern (tenendolo es. in un campo di classe).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    si infatti regexNome è un campo di classe.

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.