@duffymo: Объяснение DAO идеально, и я не могу его улучшить. Фабричная реализация OP (более или менее) правильно реализует абстрактный шаблон фабрики, поэтому, возможно, вам следует просто удалить эту часть. Извините, я уберу понижающий голос. Я просто немного схожу с ума, когда люди пользуются синглетами;)

звестны фабричные и абстрактные фабричные методы, но я хочу создать фабричный шаблон DAO в Java.

Я хочу знать его важность.Его использование

я проверилэта ссылка но мне трудно это понять.

Кто-нибудь может объяснить это с помощью примера?

Редактировать: Вот пример шаблона DAO, как я понял:

public interface UserDAO {
    public void insert(User user);
    public void update(User user);
    public void delete(int userId);
}

Реализация:

public class UserDAOImpl implements UserDAO {
    @Override
    public void delete(int userId) {
        // delete user from user table
    }

    @Override
    public User[] findAll() {
        // get a list of all users from user table
        return null;
    }

    @Override
    public User findByKey(int userId) {
        // get a user information if we supply unique userid
        return null;
    }

    @Override
    public void insert(User user) {
        // insert user into user table
    }

    @Override
    public void update(User user) {
        // update user information in user table
    }
}

Фабрика:

public class UserDAOFactory {
    public static UserDAO getUserDAO(String type) { 
        if (type.equalsIgnoreCase("jdbc")) {
            return new UserDAOImpl();
        } else {
            return new UserDAOImpl();
        }
    }
}

Код на стороне клиента:

User user=new User();
user.setName("Jinoy P George");
user.setDesignation("Programmer");
user.setAge(35);
//get a reference to UserDAO object
UserDAO userDAO=UserDAOFactory.getUserDAO("jdbc");
//call insert method by passing user object
userDAO.insert(user);

Этот шаблон Дао правильный?

Где я должен открыть соединение и закрыть его?

Ответы на вопрос(2)

Ваш ответ на вопрос