A Data Access Object is used to abstract and encapsulate all access to the database / datastore. The DAO manages all connections to the store and access to the store should be restricted to these objects.
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html