public void insert() throws ESellException
	{
		//Prfen, ob Email schon vorhanden ist
		if(!isUserFree(this.email, this.username)){
			throw new ESellException(ESellException.ErrorCode.USR_EXISTS);
		}
		
		makeConnection();
    	PreparedStatement preparedStatement = null;
    	ResultSet res = null;
    	
        if(conn != null)
        {
            try {
            	//Statement vorbereiten
                String sql = "INSERT INTO users(username, firstname, lastname, email, password) VALUES(?, ?, ?, ?, ?)";
                
                preparedStatement = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); // Der 2. Parameter ist wichtig,damit man die InsertID sofort zurck erhlt 
                
                preparedStatement.setString(1, getUsername());
                preparedStatement.setString(2, getFirstname());
                preparedStatement.setString(3, getLastname());
                preparedStatement.setString(4, getEmailadress());
                preparedStatement.setString(5, getPassword());
                
                //System.out.println(preparedStatement);
                //Statement absetzen
                preparedStatement.execute();
                
                //InsertID ermitteln
                //Die Methode ist effizienter als nochmal eine Abfrage auszufhren :)
                res = preparedStatement.getGeneratedKeys();
                if (res.next()) 
                {
                    this.id = res.getInt(1);
                    return;
                } 
                else 
                {
        			throw new ESellException(ESellException.ErrorCode.INSERT_ERR);
                }
            } 
            catch (SQLException SQLe) 
            {
            	//e.printStackTrace();
    			throw new ESellException(ESellException.ErrorCode.DB_ERR);
            }
        }
        else
        	throw new ESellException(ESellException.ErrorCode.DB_ERR);
	}