Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Recupero dati mysql

  1. #1

    Recupero dati mysql

    Ciao a tutti,
    sto impazzendo con un recupero dati da un db mysql; premesso che ho questa stringa
    codice:
    SELECT azienda.ragioneSociale, convenzione.idconvenzione FROM garagio.azienda INNER JOIN convenzione ON convenzione.idazienda = azienda.idazienda ORDER BY ragionesociale;
    che funziona benissimo in mysql workbench, il seguente codice, sembra non funzionare:
    codice:
        public static synchronized ArrayList<AziendeConvenzionate> readData(
                Connection con
                ) {
            lstRecord.clear();
            try {
                String sql = "SELECT azienda.ragioneSociale, convenzione.idconvenzione FROM garagio.azienda INNER JOIN convenzione ON convenzione.idazienda = azienda.idazienda ORDER BY ragionesociale;";
                stmt = con.createStatement();
                ResultSet rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    dbToObj();
                    lstRecord.add(obj);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return lstRecord;
        }
    
        private static void dbToObj() throws SQLException {
            obj = new AziendeConvenzionate();
            obj.setRagioneSociale(rs.getString("ragioneSociale"));
            obj.setIdConvenzione(rs.getInt("idConvenzione"));
        }
    Dico "sembra non funzionare", perche' se da una pagina jsp eseguo il blocco di codice contenuto in una classe, ottengo l'errore:
    codice:
    java.lang.NullPointerException
        tm.dbmanager.DaoAziendeConvenzionate.dbToObj(DaoAziendeConvenzionate.java:44)
        tm.dbmanager.DaoAziendeConvenzionate.readData(DaoAziendeConvenzionate.java:33)
        org.apache.jsp.lstvacancy_jsp._jspService(lstvacancy_jsp.java:273)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    La riga 44 e' quella evidenziata in corsivo, grassetto.
    Eseguendo il debug del codice, il ResultSet contiene 2 righe, come e' giusto che sia, ma sembra che queste righe siano null.
    Qualcuno ha idea di dove sia l'errore?
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    scusate, doppio post sotto (non so perché ma a volte mi capita e non ho premuto 2 volte invia .. boh)
    Ultima modifica di andbin; 05-05-2016 a 12:48
    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 L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Il ResultSet che stai usando dentro dbToObj() non è lo stesso che hai appena ottenuto dalla query. Rivedi meglio la cosa ed evita di usare attributi quando non necessario.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da digipato Visualizza il messaggio
    obj.setRagioneSociale(rs.getString("ragioneSociale"));
    Questo rs NON è sicuramente il rs che è "locale" in readData

    ResultSet rs = stmt.executeQuery(sql);

    E quindi il rs che usi in dbToObj è (presumo) null.


    P.S. Diverse cose che hai scritto comunque sono abbastanza "dubbie"
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Come sempre il tempo prezioso si perde per gli errori stupidi!!!
    Grazie mille, problema risolto.

    P.S. Mi piacerebbe sapere a cosa ti riferisci nel tuo P.S.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da digipato Visualizza il messaggio
    P.S. Mi piacerebbe sapere a cosa ti riferisci nel tuo P.S.
    1) È dubbio il perché in una web application devi usare quei metodi come "statici".
    2) È dubbio il perché readData lo devi mettere synchronized (e presumo sia perché hai fatto ragionamenti strani a fronte del 1) ).
    3) È dubbio il perché devi usare variabili condivise (parlo almeno dei lstRecord, stmt e obj, di cui non si vedono le dichiarazioni, quindi sono sicuramente altrove).
    4) È dubbio l'utilizzo di Statement/ResultSet, non hai nemmeno gestito i close di questi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Quote Originariamente inviata da andbin Visualizza il messaggio
    1) È dubbio il perché in una web application devi usare quei metodi come "statici".
    2) È dubbio il perché readData lo devi mettere synchronized (e presumo sia perché hai fatto ragionamenti strani a fronte del 1) ).
    3) È dubbio il perché devi usare variabili condivise (parlo almeno dei lstRecord, stmt e obj, di cui non si vedono le dichiarazioni, quindi sono sicuramente altrove).
    4) È dubbio l'utilizzo di Statement/ResultSet, non hai nemmeno gestito i close di questi.
    Tutto chiaro!
    Comunque e' tutto come hai descritto, non ho postato la parte di codice non direttamente interessata all'errore.
    Grazie mille sei stato gentilissimo.

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.