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

    Classe JDBC per servlet

    Ciao
    ho da poco imparato a realizzare le servlet nella piattaforma enterprise, dove utilizzo il JDBC per connettermi al database. Per semplificarmi il codice avevo deciso di crearmi una classe di accesso al db da sfruttare per ogni servlet creata:

    Codice PHP:
    public class DBbridge
    {
        private 
    String DBdriver "com.mysql.jdbc.Driver";
        private 
    String DBurl "jdbc:mysql://localhost:3300/data1";
        private 
    String DBuser;
        private 
    String DBpassword;
        
        public 
    DBbridge(String user,String password)
        {
            
    DBuser user;
            
    DBpassword password;
        }
        public 
    void connect()
        {
            try
            {
                Class.
    forName(DBdriver);
                
    Connection c DriverManager.getConnection(DBurl,DBuser,DBpassword);
            }
                
    cacth(Exception e){System.out.println("Errore: "+e.getMessage());}
        }

    Quindi nella mia servlet ho cercato di richiamarmi la classe DBbridge di cui sopra:

    Codice PHP:
    public class servlet extends javax.servlet.http.HttpServlet
    {
        
        protected 
    void doGet(HttpServletRequest reqHttpServletResponse resp)
        
    throws ServletExceptionIOException
        
    {
            
    DBbridge dbb = new DBbridge("root","kaka83");
        }                      

    Mi dice che il costruttore non è definito... è dovuto forse al fatto che cerco di creare l'oggetto di DBbridge all'interno del doGet? Come potrei fare? So di poter utilizzare altri sistemi per l'accesso al database come il JNDI oppure usare addirittura un framework tipo Struts o JSF però volevo provare a crearmi una mia classe di accesso al db
    PS: provando con una normale servlet senza classe DBbridge mettendo il codice nel doGet mi funziona perfettamente.
    Ho letto la Bibbia recentemente, non male, peccato però che il personaggio principale sia poco credibile (Woody Allen)

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    86
    Secondo me è un po' confuso così. Allora, la classe che hai creato per la connessione al database la imposterei diversamente:

    Codice PHP:
    public class nomeClasse{

    //Costruttore
    public nomeClasse(){

    try{
    Class.
    forName(driverMYSQL);
    }
    catch (
    ClassNotFoundException e) {
                
    e.printStackTrace();
    }

    }

    //Ho messo il Class.forName dentro al try così da poter gestire l'eccezione in caso di driver MYSQL //sbagliati.


    //Fatto questo creati il metodo che apre la connessione:

    public apriConnessione(){

    try {

    Connection connessione DriverManager.getConnection(urlDB,nicknameDB,passDB);
    Statement statement = (Statementconnessione.createStatement();
    ResultSet resultSet statement.executeQuery(“SELECT *FROM nomeTabella”);

    //Chiudi le connessioni;
    statement.close();
    connessione.close();
    }
    (
    SQLException e {
    e.printStackTrace();
    }

    }




    fatto cio' creati la tua servlet, basta fare un'istanza alla classe creata è il gioco è fatto. Per esempio

    NomeClasse nome = new NomeClasse();
    nome.apriConnessione();


    vedrai che funziona ^^

    P.S

    controllati bene le parentesi graffe perchè non so di averle messe giuste ^^ magari ne manca qualcuna.
    Shashia

  3. #3
    allora intanto grazie per la risposta...ho trovato l'errore, si trattava di avere scritto nella classe del db "cacth" invece di catch...aggiustandolo si è risolto e funziona tutto alla perfezione. Riguardo alla classe la si può implementare in diverse maniere, anche in base a quello che si deve fare, grazie per il suggerimento
    Ho letto la Bibbia recentemente, non male, peccato però che il personaggio principale sia poco credibile (Woody Allen)

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.