Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [java-sql]differenza tra SQLException e SQLDataException

    leggendo le api di java credo di aver capito la differenza tra queste 2 eccezioni. la prima viene lanciata quando si verifica un errore sql di oggi tipo. la seconda sqldataexception invece viene lanciata solo nel caso di errore di inserimento dati. pero non riesco a capire se questa classe sqldataexception viene lancira quando si inserisce una tupla con stessa chiave.

    esempio tabella dipendette chiave cf:
    cf1=1234
    cf2=1234

    in questo caso che eccezione lancia?
    non riesco a capire che tipo di eccezione lanci

    oppure secondo voi conviene faro solo un controllo della chiave, cioe farmi un a ricerca se quel dipendete e già presente nella tabella?

    grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    In che modo la aggiungeresti? Tramite un oggetto Statement?

  3. #3
    si uso un oggetto statement.. + che altro ho una classe db che uso ogni volta ed uso li dentro l'oggetto statement e quel metodo mi restituisce un resultat set

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Non ci ho capito molto... hai una tua classe che contiene lo Statement?

    In questo caso se non mostri la classe, o almeno la firma del metodo, è difficile poterti aiutare... Per sapere il motivo del lancio di quell'eccezione, ti è sufficiente consultare la documentazione comunque (se il metodo può lanciare un eccezione è sicuramente riportata).

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Solo per rispondere ai dubbi sulle classi.

    SQLException è la madre di tanti tipi di Exception. Tra i quali, SQLNonTransientException che è, a sua volta, la madre di SQLDataException.

    Quindi, una SQLDataException è essa stessa una SQLException, solo più specifica.

    Solitamente, quando si tenta di inserire un record che ha una chiave già presente, viene sollevata una SQLIntegrityConstraintViolationException (stai, in effetti, cercando di violare un vincolo di chiave) e non una SQLDataException.

    Quest'ultima (SQLDataException) viene sollevata, generalmente, quando cerchi di passare dei valori non corretti per alcuni campi (esempio, una stringa per un campo numerico o di tipo datetime) o per i parametri in chiamata a funzioni del DB.


    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.