Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Class.forName()

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    36

    Class.forName()

    ciao a tutti oggi stavo vedendo un pezzo di codice che faceva una connessione ad un db
    e mi sono imbattuto nel Class.forName()
    e mi stavo chiedendo...ma effettivamente cosa fa????
    cioè io l'ho usato per farmi restituire l'oggetto Class da una stringa per crearmi un'oggetto a runtime...mentre per le connessioni al db viene lanciato senza assegnare ciò che ritorna a nessuno oggetto...
    quindi come diavolo funziona quest'istruzione???

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Class.forName()

    Originariamente inviato da rascio88
    ciao a tutti oggi stavo vedendo un pezzo di codice che faceva una connessione ad un db
    e mi sono imbattuto nel Class.forName()
    e mi stavo chiedendo...ma effettivamente cosa fa????
    cioè io l'ho usato per farmi restituire l'oggetto Class da una stringa per crearmi un'oggetto a runtime...mentre per le connessioni al db viene lanciato senza assegnare ciò che ritorna a nessuno oggetto...
    quindi come diavolo funziona quest'istruzione???
    Nel caso di JDBC, Class.forName() viene usato per caricare il driver JDBC. Avere il Class del driver non è utile e non serve al programmatore in questo contesto, per questo motivo il valore di ritorno non viene usato.

    Quando una classe viene caricata, in generale, vengono anche eseguiti gli inizializzatori statici e i blocchi di inizializzazione statici. La classe di un driver JDBC tipicamente ha un blocco di inizializzazione static al cui interno invoca semplicemente (generalmente in un try/catch) il metodo registerDriver() di DriverManager per registrare una istanza della classe del driver.
    In pratica: il programmatore carica la classe del driver e il driver si "registra" presso il DriverManager. È tutto qui quello che serve.

    P.S. Prendi un driver JDBC disponibile in rete, es. il Connector/J di MySQL, guarda il sorgente della classe del driver e ... capirai!
    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
    Apr 2008
    Messaggi
    36
    aaahhhh ora ho capito tutto!!!
    cioè fa una cosa tipo:

    Codice PHP:
    public class Driver{
    static{
            try{
                
    DriverManager.registerDriver(new Driver());
            }
            catch(
    Exception e){
                
            }
        }
    .
    .

    ora mi è tutto più chiaro!
    grazie 1000

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da rascio88
    Codice PHP:
    public class Driver{
    static{
            try{
                
    DriverManager.registerDriver(new Driver());
            }
            catch(
    Exception e){
                
            }
        }
    .
    .

    Esatto!! Proprio una cosa di questo tipo.
    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.