Using the Active Record approach, you define all your query methods inside the model itself, and you save, remove, and load objects using model methods.

Simply said, the Active Record pattern is an approach to access your database within your models. You can read more about the Active Record pattern on Wikipedia.

Using the Data Mapper approach, you define all your query methods in separate classes called “repositories”, and you save, remove, and load objects using repositories. In data mapper your entities are very dumb - they just define their properties and may have some “dummy” methods.

Simply said, data mapper is an approach to access your database within repositories instead of models. You can read more about data mapper on Wikipedia.