Ciao a tutti, ho un piccolo problema con l'esecuzione di una query tramite Java su un database...non riesco a capire dove sbaglio e vorrei da voi un parere.
Le classi del progetto Java sono due, la prima è:
la seconda classe sfrutta le funzioni della prima per inserire e selezionare dei dati nel database ed è così definita:codice:import java.sql.*; public class InterfacciaDB { private Connection connection; private Statement statement; public InterfacciaDB(String database){ String url=database,username="xyz",password="xyz"; connection=null; //Carica il driver per la connessione try{ Class.forName("com.mysql.jdbc.Driver"); connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/"+url,username,password); System.out.println("Connesso al database..."); } catch(ClassNotFoundException cnfex){ System.err.println("Failed to load JDBC/ODBC driver"); System.exit(1); } catch(SQLException sqlex){ System.err.println("Unable To Connect"); sqlex.printStackTrace(); } } public ResultSet esegui(String query, boolean update){ ResultSet result=null; try{ statement=connection.createStatement(); if(update)statement.executeUpdate(query); else result=statement.executeQuery(query); statement.close(); } catch(SQLException sqlex){ sqlex.printStackTrace(); return null; } catch(Exception e){ System.out.println("Errore query SQL"); return null; } return result; } public void closeConnection(){ //Disconnessione try{ connection.close(); } catch(SQLException sqlex){ System.err.println("Unable to disconnect"); sqlex.printStackTrace(); } System.out.println("Aggiornamento database effettuato."); }
il problema è che eseguendo il programma ho questi messaggi stampati:codice:public class Elabora { private InterfacciaDB db; public Elabora(){ db=new InterfacciaDB("ilnomedelmiodatabase"); try{ Esamina(); }catch(Exception e){ System.out.println("Errore caricamento interprete"); e.printStackTrace(); } db.closeConnection(); } private void Esamina(){ //altro codice di programma fino a giungere all'istruzione... Codice_comp=CodiceCompagnia(dato); } public int CodiceCompagnia(String dato){ int Codice_comp=0; int risCerca=CercaCompagnia(dato); if(risCerca==0){ String query_ins_comp="INSERT INTO compagnia ( Nome ) VALUES ('"+dato+"')"; try{ db.esegui(query_ins_comp,true); //Prelevo il codice associato all'ultima compagnia inserita String query_codice="SELECT Codice FROM compagnia WHERE Nome='"+dato+"')"; ResultSet inserito=db.esegui(query_codice,false); Codice_comp=inserito.getInt("Codice"); }catch(Exception e){System.out.println("Errore inserimento codice compagnia");} }else Codice_comp=risCerca; return Codice_comp; } public int CercaCompagnia(String Compagnia){ String query_compagnie="SELECT * FROM compagnia"; try{ ResultSet comp_reg=db.esegui(query_compagnie,false); while (comp_reg.next()){ String comp = comp_reg.getString("Nome"); if(Compagnia.compareToIgnoreCase(comp)==0)return (int)(comp_reg.getInt("Codice")); //ritorna il codice se la compagnia è già registrata } }catch(Exception e){ System.out.println("Errore ricerca"); } //Ritorna 0 se la compagnia è nuova return 0; } } public static void main(String[] args){ new Elabora(); }
Connesso al database...
Errore ricerca
Errore inserimento codice compagnia
Non riesco a capire perchè? dove sbaglio? sembra che la query sql non venga accettata.
Sapete aiutarmi?

Rispondi quotando