Ho dei problemi con l'istruzione "Statement stmt = conn.createStatement();" presente nel seguente codice, mi ritorna sempre una nullpointerexception e non capisco il perché, ho già usato lo stesso codice in passato su un altro progetto ed ha sempre funzionato, ho anche provato a tirarlo fuori di nuovo per vedere se magari non fosse un problema di mysql o tomacat sul pc visto che li ho reinstallati e potevo aver sbagliato qualcosa, invece il vecchio progetto funziona correttamente.
Sapreste darmi una mano?
Questo è il ConnectionManager, lo uso su un altro progetto, cambia solo il nome del database nell'istruzionecodice:public class AccountDAO { public static boolean login(String username, String password) { try { ConnectionManager connection = ConnectionManager.getInstance(); Connection conn = connection.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = null; rs = stmt.executeQuery("SELECT username, password FROM account WHERE username='"+username+"' AND password='"+password+"';"); if(rs.next() == false) return false; return true; } catch (SQLException ex) { System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } return false; } }
conn = DriverManager.getConnection("jdbc:mysql://localhost/ricettelastminute?user=root&password=root");
bookshop al posto di ricettelastminute.
bookshop funziona senza problemi.
codice:import java.sql.*; public class ConnectionManager { /** * La singola istanza del ConnectionManager. */ private static ConnectionManager instance = null; /** * La connessione al database. */ private static Connection conn = null; /** * Consente di ottenere l'unica istanza della classe. * * Il metodo è sincronizzato per gestire chiamate concorrenti da più thread. * * @return l'unica istanza del ConnectionManager */ public static synchronized ConnectionManager getInstance() { if (instance == null) instance = new ConnectionManager(); return instance; } /** * Invocato al momento della distruzione dell'oggetto. * * Rilascia la connessione creata nel momento di creazione dell'istanza dell'oggetto. */ protected void finalize() { try { if (conn != null) conn.close(); } catch (SQLException ex) { System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } } /** * Restituisce la connessione al database. * * @return la connessione al database */ public Connection getConnection() { return conn; } /** * Costruttore della classe. * * Il costruttore è reso privato in accordo al pattern Singleton */ private ConnectionManager() { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection("jdbc:mysql://localhost/ricettelastminute?user=root&password=root"); } catch (SQLException ex) { System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } catch (Exception ex) { System.out.println("Exception: " + ex.getMessage()); } } }

Rispondi quotando