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?
codice:
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;
  }
}
Questo è il ConnectionManager, lo uso su un altro progetto, cambia solo il nome del database nell'istruzione
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());
                }
	}
}