使用JDBC实现迭代器设计模式



我正在处理以下问题:

迭代器设计模式具有很强的封装性。举个例子;图书馆需要一个图书管理系统。一个用于book的类存储它们的详细信息,一个用于library的类存储图书和书架号。让我们假设库希望使用JDBC将数据存储在数据库中。

如何使用JDBC实现迭代器设计模式以确保数据的封装?

我关心的是如何处理数据库以及如何在应用程序中共享数据。

数据库处理程序可以是库类的内部类吗?那么是否有可能保存数据并根据请求检索数据而不影响封装?

我还在学习,还有很长的路要走,所以请温柔一点:)

这是一个关于使用Iterator模式访问数据库的近似示例。

package tk.ezequielantunez.stackoverflow.examples;
import java.util.Collection;
import java.util.Iterator;
/**
 * Paged implementatios of a DAO. Iterator interface is used.
 * Nottice you get pages of Collections, where resides your data.
 * @author Ezequiel
 */
public class DAOIterator implements Iterator<Collection> {
    int actualPage;
    int pageSize;
    public DAOIterator(int pageSize) {
        this.actualPage = 0;
        this.pageSize = pageSize;
    }
    /**
     * Indicates if you have more pages of datga.
     */
    @Override
    public boolean hasNext() {
        return actualPage < getTotalPages();
    }
    /**
     * Gets the next page of data.
     */
    @Override
    public Collection next() {
        return getPage(++actualPage);
    }
    @Override
    public void remove() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    /**
     * Calculates total number of pages.
     */
    private int getTotalPages() {
        /* You could do a count of total results and divide them by pageSize */
        throw new UnsupportedOperationException("Not supported yet.");
    }
    /**
     * Get a page of results with X objects, where X is the pageSize used in
     * constructor.
     */
    private Collection getPage(int page) {
        /* Get data from database here */
        throw new UnsupportedOperationException("Not supported yet.");
    }
}

最新更新