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

    registration form @ mysql db

    Devo creare un modulo di registrazione + accesso al db... la domanda primaria è: creo una classe utente e la sfrutto nella classe signup oppure è superflua al fine di registrare nel db?
    Perché, ad esempio, per il form del login non son passato dalla classe utente ma ho direttamente interrogato il db...

    Non so se mi son spiegato! :|

    Io ho fatto così, per intenderci:

    codice:
    public class Utente {
    
    
        private String nome;
        private String cognome;
        private String email;
        private String categoria;
        private String password;
        
        public Utente(){
            nome="";
            cognome="";
            email="";
            categoria="";
            password="";
        }
        
        public Utente(String nomeutente, String cognomeutente, String emailutente, String categoriautente, String passwordutente){
            nome = nomeutente;
            cognome = cognomeutente;
            email = emailutente;
            categoria = categoriautente;
            password = passwordutente;
        }
        
        public void setNome(String nomeutente){
            nome = nomeutente;
        }
        
        public void setCognome(String cognomeutente){
            cognome = cognomeutente;
        }
        
        public void setEmail(String emailutente){
            email = emailutente;
        }
        
        public void setCategoria(String categoriautente){
            categoria = categoriautente;
        }
        
        public void setPassword(String passwordutente){
            password = passwordutente;
        }
        
        public String getNome(){
            return nome;
        }
        
        public String getCognome(){
            return cognome;
        }
        
        public String getEmail(){
            return email;
        }
        
        public String getCategoria(){
            return categoria;
        }
        
        public String getPassword(){
            return password;
        }
    }

    codice:
    import java.awt.Color;
    import java.awt.event.ActionListener;
    
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    
    public class SignUp extends JFrame implements ActionListener {
    
    
        private static final int LARGHEZZA = 360;
        private static final int ALTEZZA = 250;
        
        JTextField nameText, surnameText, emailText, categoriaText, pwdText;
        
        public SignUp(){
            super();
            
            setTitle("Sign Up!");
            setSize(LARGHEZZA,ALTEZZA);
            
            JPanel pannello = new JPanel();
            pannello.setLayout(null);
            
            JLabel nameLabel = new JLabel("Nome: ");
            nameLabel.setBounds(10,10,80,25);
            pannello.add(nameLabel);
            
            nameText = new JTextField(20);
            nameText.setBounds(80,10,160,25);
            pannello.add(nameText);
            
            JLabel surnameLabel = new JLabel("Cognome: ");
            surnameLabel.setBounds(10,50,80,25);
            pannello.add(surnameLabel);
                    
            surnameText = new JTextField(20);
            surnameText.setBounds(80,50,160,25);
            pannello.add(surnameText);
            
            JLabel emailLabel = new JLabel("Email: ");
            emailLabel.setBounds(10,90,80,25);
            pannello.add(emailLabel);
            
            emailText = new JTextField(20);
            emailText.setBounds(80,90,160,25);
            pannello.add(emailText);
            
            
            JLabel categoriaLabel = new JLabel("Impiego: ");
            categoriaLabel.setBounds(10,130,80,25);
            pannello.add(categoriaLabel);
            
            categoriaText = new JTextField(20);
            categoriaText.setBounds(80,130,160,25);
            pannello.add(categoriaText);
            
            
            JLabel pwdLabel = new JLabel("Password: ");
            pwdLabel.setBounds(10,170,80,25);
            pannello.add(pwdLabel);
            
            pwdText = new JTextField(20);
            pwdText.setBounds(80,170,160,25);
            pannello.add(pwdText);
            
            
            
            JButton signup = new JButton("Sign Up!");
            signup.setBackground(Color.LIGHT_GRAY);
            signup.addActionListener(this);
            signup.setBounds(250,30, 80,25);
            pannello.add(signup);
            
            add(pannello);
        }
        
        public void ActionPerformed(ActionEvent e){
            Utente utente = new Utente();
            
            utente.setNome(nameText.getText());
            utente.setPassword(pwdText.getText());
            
            // registra(); metodo per registrare nel db 
            //da completare
        }
        
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
    
            SignUp signup = new SignUp();
            signup.setVisible(true);
        }
        
        
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Aggiungo una domanda per quel che riguarda l'inserimento nel db...
    Il mio db ha i seguenti campi:

    ID | nome | cognome | email | categoria | password


    con campo ID che si incrementa da solo e che ho trovato di default alla creazione del db stesso.
    Devo considerare il campo ID nella gestione dell'inserimento dati pur essendo una cella che si incrementa da se e che non viene settata dall'utente?
    Perché mi da il seguente errore:

    [Microsoft][Driver ODBC Microsoft Access] Il numero dei valori nella query non corrisponde a quello dei campi di destinazione.
    N.B. ho provato ad inserire il codice ma il forum me lo blocca perché è un codice sql...

  3. #3
    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
    la domanda primaria è: creo una classe utente e la sfrutto nella classe signup oppure è superflua al fine di registrare nel db?
    La classe Utente è assolutamente sensata ed appropriata. Insomma è giusto nell'ottica object-oriented modellare la entità dell'utente con una classe. E ti può servire non solo per inserire ma anche se devi estrarre record da DB!

    Quote Originariamente inviata da Sevenis Visualizza il messaggio
    Aggiungo una domanda per quel che riguarda l'inserimento nel db...
    Il mio db ha i seguenti campi:

    ID | nome | cognome | email | categoria | password


    con campo ID che si incrementa da solo e che ho trovato di default alla creazione del db stesso.
    Devo considerare il campo ID nella gestione dell'inserimento dati pur essendo una cella che si incrementa da se e che non viene settata dall'utente?
    Se dovrai fare anche query di select sulla tabella degli utenti, allora dovresti mettere nella classe Utente anche il ID. Puoi usare Integer o Long (non so di che tipo è il campo sul DB ..) ma comunque qualcosa di "nullable". Generalizza la query di insert, se il ID inserito è null, vale il meccanismo di auto-increment (se la colonna del ID è stata creata come tale). E il ID è ovviamente sarà utile quando tiri su record da DB.

    Quote Originariamente inviata da Sevenis Visualizza il messaggio
    Perché mi da il seguente errore:

    [Microsoft][Driver ODBC Microsoft Access] Il numero dei valori nella query non corrisponde a quello dei campi di destinazione.
    Ma cosa stai usando esattamente? Se intendi usare un DB MySQL, allora ODBC e soprattutto "Microsoft Access" non c'entrano assolutamente nulla.

    Se vuoi connetterti ad un DB MySQL devi usare il driver JDBC "Connector/J" ufficiale: https://dev.mysql.com/downloads/connector/j/
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Quote Originariamente inviata da andbin Visualizza il messaggio

    Se dovrai fare anche query di select sulla tabella degli utenti, allora dovresti mettere nella classe Utente anche il ID. Puoi usare Integer o Long (non so di che tipo è il campo sul DB ..) ma comunque qualcosa di "nullable". Generalizza la query di insert, se il ID inserito è null, vale il meccanismo di auto-increment (se la colonna del ID è stata creata come tale). E il ID è ovviamente sarà utile quando tiri su record da DB.
    praticamente lo inserisco nella classe Utente ma poi non lo metto nella frame così di base viene gestito come auto-increment?


    Ma cosa stai usando esattamente? Se intendi usare un DB MySQL, allora ODBC e soprattutto "Microsoft Access" non c'entrano assolutamente nulla.

    Se vuoi connetterti ad un DB MySQL devi usare il driver JDBC "Connector/J" ufficiale: https://dev.mysql.com/downloads/connector/j/
    ok, ho scaricato e ora sto usando il JDBC "connector/J" solo che nel getConnection al db mi chiede di inserire anche username e password del db che io non ho settato e non so come recuperare...
    Io ho creato il db tramite access!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,325
    Quote Originariamente inviata da Sevenis Visualizza il messaggio
    ok, ho scaricato e ora sto usando il JDBC "connector/J" solo che nel getConnection al db mi chiede di inserire anche username e password del db che io non ho settato e non so come recuperare...
    Io ho creato il db tramite access!

    Eh?? No, guarda... o stai usando Microsoft Access o stai usando MySQL... non puoi creare un DB MySQL usando Access (non esiste proprio)... ma cosa stai usando lo puoi sapere solo tu.
    "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

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Eh?? No, guarda... o stai usando Microsoft Access o stai usando MySQL... non puoi creare un DB MySQL usando Access (non esiste proprio)... ma cosa stai usando lo puoi sapere solo tu.
    sto usando microsoft access per il db...

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,325
    Ok, allora non si capisce perchè nel titolo della discussione hai scritto "registration form @ mysql db"... visto che mysql non c'entra nulla.

    Per accedere ad un DB Microsoft Access esistono sostanzialmente due modi:

    1) Bridge ODBC-JDBC che però non può essere usato da Java 8 in avanti, in quanto il bridge è stato proprio rimosso e, se non erro, non funziona con le versioni di Access dalla 2007 in poi. Per di più, sui sistemi a 64 bit c'è un po' di lavoro da fare per impostare un DSN ODBC (vedi questo post).

    2) Usare un driver JDBC che acceda ad Access... c'è un driver sviluppato da un italianco che si chiama UCanAccess.


    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.