Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Gestione "errori" con database

    Buondì, torno a tormentarvi ^^


    Allora, io ho un'applicazione che si appoggia ad un dbms (derby). Il mio dubbio è sulla gestione degli "errori" che potrebbero capitare lavorando col db. Mi spiego meglio:

    Un campo del db può essere lungo al massimo 50 caratteri. Io questo controllo lo dovrei fare prima di inserire i dati nel db o aspettare che il db dia eccezione? Questo controllo può essere fatto da un PreparedStatement?


    Probabilmente sarà una stupidata ma vorrei avere qualche dritta per scrivere del codice un po' più meglio ^^

    Grazie
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  2. #2
    Ciao

    secondo me si ti conviene fare il controllo sulla pagina d'inserimento dati, in modo tale (x questo tipo di errori) di bloccare subito l'utente.

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    C'è anche da dire che se si usano dei componenti come JTextField o simili per l'input dei dati, si possono rendere "limitati" questi componenti in modo che non accettino più di tot caratteri.
    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 L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da andbin
    C'è anche da dire che se si usano dei componenti come JTextField o simili per l'input dei dati, si possono rendere "limitati" questi componenti in modo che non accettino più di tot caratteri.
    :-O


    E cosa posso usare? Un qualche listener sul campo di testo?



    Intanto grazie per aver risposto
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Allora, ho fatto questo e sembra funzionare:


    Codice PHP:
       category.addKeyListener(new KeyAdapter() {
           public 
    void keyTyped(KeyEvent e) {
               if (
    category.getText().length() >= 10) {
                   
    e.consume();
                }
           }
       }); 

    Però c'è un problema: se ci incollo dentro una stringa più lunga di 10 caratteri la prende lo stesso... Come posso evitare questo?
    Grazie
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Per limitare JTextField si deve estendere PlainDocument:

    codice:
    import javax.swing.text.*;
    
    public class LimitedPlainDocument extends PlainDocument
    {
        private int maxSize;
    
        public LimitedPlainDocument (int maxSize)
        {
            this.maxSize = maxSize;
        }
    
        public void insertString (int offs, String str, AttributeSet a)
            throws BadLocationException
        {
            if (str == null)
                return;
    
            if (getLength () + str.length () > maxSize)
                str = str.substring (0, maxSize - getLength ());
    
            super.insertString (offs, str, a);
        }
    }
    Poi ad esempio:

    tuoTextField.setDocument (new LimitedPlainDocument (20));
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da andbin
    Per limitare JTextField si deve estendere PlainDocument:

    codice:
    import javax.swing.text.*;
    
    public class LimitedPlainDocument extends PlainDocument
    {
        private int maxSize;
    
        public LimitedPlainDocument (int maxSize)
        {
            this.maxSize = maxSize;
        }
    
        public void insertString (int offs, String str, AttributeSet a)
            throws BadLocationException
        {
            if (str == null)
                return;
    
            if (offs + str.length () > maxSize)
                str = str.substring (0, maxSize - offs);
    
            super.insertString (offs, str, a);
        }
    }
    Poi ad esempio:

    tuoTextField.setDocument (new LimitedPlainDocument (20));
    Grazie mille! Nel frattempo avevo risolto così:

    codice:
            private class MyKeyListener extends KeyAdapter {
    
    	    private String oldString;
    
    	    private int limit;
    
    	    public MyKeyListener(int limit) throws IllegalArgumentException {
    		if (limit < 1) {
    		    throw new IllegalArgumentException("limit must be > 0");
    		}
    
    		this.limit = limit;
    	    }
    
    	    @Override
    	    public void keyTyped(KeyEvent e) {
    		if (category.getText().length() > limit) {
    		    e.consume();
    		} else {
    		    oldString = category.getText();
    		}
    	    }
    
    	    @Override
    	    public void keyReleased(KeyEvent e) {
    		if (category.getText().length() > limit) {
    		    category.setText(oldString);
    		}
    	    }
    	}
    ma la tua soluzione mi sembra più adatta ^^

    Grazie ancora
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.