Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Java e Query SQL[HELP]

  1. #1

    Java e Query SQL[HELP]

    Salve sto realizzando un software java che permette
    di interrogare un database MySQL. Utilizzo i driver ODBC

    Ho provato una query del tipo SELECT * FROM Tabella e funziona perfettamente
    Se provo una query come SELECT * FROM Tabella WHERE Codice='34' non funziona
    Anche SELECT Codice, Titolo FROM Tabella WHERE Codice='34' nn funziona



    Per realizzare le ultime due query, utilizzo statement precompilati. Questo è il codice:
    (il metodo DB_Connection restituisce un oggetto Connection)

    public void QueryLibro(){
    int cod=34;

    //System.out.println("QueryLibro per Codice su: " + this.getSourceDB());
    try{
    PreparedStatement pst=this.DB_Connection().prepareStatement("SELECT *" + "FROM libri" + "WHERE libri.Codice='?'");
    pst.setInt(1,cod);
    System.out.println("DEBUG");
    ResultSet rts=pst.executeQuery();
    System.out.println("DEBUG");
    System.out.println("CodiceLibro" + "\t" + "Categoria" + "\t" + "Titolo");
    rts.first();
    while(rts.next()){
    System.out.println(rts.getString(1) + "\t" + rts.getString(2) + "\t" + rts.getString(3));
    }
    pst.close();

    }
    catch(SQLException SQLEx){
    //SQLEx=new SQLException("Errore SQL...");
    System.err.println(SQLEx.getMessage());
    System.exit(1);
    }
    }

    dice che c'è errore di null pointer exception e mi segnala la riga rts.setInt(1,cod), ma non capisco cosa possa essere.
    c'è qualche errore di concetto nel codice???
    Non penso che l'errore derivi dall'oggetto Connection riportato dal metodo BD_Connection perchè non dovrebbe funzionare nulla. E non è così, perchè ho provato query generiche senza where, insert delete e update con relativi where(queste con statement precompilati)

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,523
    Il campo codice è di tipo testo o numerico ? Se è numerico non devi mettere gli apici.
    ...where codice = 34
    NON ... where codice = '34'

  3. #3
    Penso che l'errore sia dovuto a '?'. io sto realizzando un programma similie al tuo (java su mySQL) e non uso mai '?' indipendentemente dal tipo di dato.
    Ma perchè la stringa della query la scrivi a pezzi e non tutta intera?

  4. #4

    RE: Java MySQL

    La query era scritta un pò così...tanto per.

    Il 34 è numerico il fatto è che con '34' o 34 non funziona cmq. Se non ricordo male con 34 mi solleva l'eccezione.

    Non capisco cosa intendi quando non usi il simbolo ?. Cmq se devi associare alla query il valore di una variabile, devi utilizzare per forza di cosa il simbolo ?.....Prendi in considerazione il fatto che non è proprio 34 ma una variabile intera. Il 34 era un modo spiccio di capire dove è l'errore


    Avete qualche idea..???Io non capisco proprio

  5. #5
    con ? indendevo che non dovevi metterlo fra apici
    nn saprei dov'è il problema.
    bisognerebbe avere il codice e il db per fare delle prove
    ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.