Salve,
sto faccendo dei test usando la pillola Connessione Java con Mysql postato da LeleFT. Ho creato un database con una tabella "studente" (matricola,nome,cognome,indirizzo,citta) con matricola auto_increment. Ho creato la seguente classe "Database.java":
Ho creato la seguente classe che mi contiene le principali metodi tipo inserimento, cancellazione, modifica ecc. al database. Ecco il mio primo metodo di inserimento.public class Database {
private String db_name; // Nome del Database a cui connettersi
....
//Apre la connessione con il Database
public boolean connect() {
....
}
public Vector eseguiQuery(String query) {
Vector v = null;
String [] record;
int colonne = 0;
try{
Statement stmt = conn.createStatement(); // Creo lo Statement per l'esecuzione della query
ResultSet rs = stmt.executeQuery(query); // Ottengo il ResultSet dell'esecuzione della query
v = new Vector();
ResultSetMetaData rsmd = rs.getMetaData();
colonne = rsmd.getColumnCount();
while(rs.next()) { // Creo il vettore risultato scorrendo tutto il ResultSet
record = new String[colonne];
for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1);
v.add( (String[]) record.clone() );
}
rs.close(); // Chiudo il ResultSet
stmt.close(); // Chiudo lo Statement
}catch(Exception e){
e.printStackTrace();
errore = e.getMessage();
}
return v;
}
public boolean eseguiUpdate(String query) {
....
}
public void disconnect() {
....
}
public boolean isConnect(){
....
}
public String getError(){
....
}
}
Vado a fare un test sulla classe Main:public void aggiungiStudente(String nome, String cognome, String indirizzo, String citta){
Database db = new Database("msdb","root", "root");
if ( !db.connect() ) { //se non ho la connessione(false), quindi condizione vera, stampa errore ed esci!
System.out.println("Errore durante la connessione.");
System.out.println( db.getError() );
System.exit(0);
}
String query="insert into studente (nome,cognome,indirizzo,citta) values" +"('" +nome+ "','" +cognome+ "','" +indirizzo+"','"+citta+"')"+";";
[/B]db.eseguiQuery(query);[/B]
}
...ed ottengo il seguente errore:public static void main(String[] args) {
Manage m = new Manage();
/**
* 1- l’inserimento di uno studente
* basta fare m.aggiungiStudente("nome","cognome","indirizzo","c itta");
*/
m.aggiungiStudente("mario", "rossi", "via roma", "roma");
}
Nei BOLD text si verificano i NullPointerExceptions. Quindi per prima nella classe Database.java sulla creazione dello statement per l'esecuzione della mia query. Perche?java.lang.NullPointerException
at studentmanagement.Database.eseguiQuery(Database.ja va:69)
at studentmanagement.Manage.aggiungiStudente(Manage.j ava:18)
at studentmanagement.Main.main(Main.java:17)
Grazie

Rispondi quotando