我可以在另一个DAO的方法体中调用多个DAO,通过ResultSet填充参数并返回一个对象吗?

问题描述

我有 getBookByResultSet 方法,它通过 resultSet 和布尔参数 isDetailedBook 创建 Book 对象(true 如果我们想在用户点击 {{1 }} 按钮,view more 如果我们要显示所有书籍)。我正在使用 Builder Pattern 来设置所有属性。然后我可以在其他方法中使用 false 方法,例如 getBookByResultSetselectAllBooks()

selectBookByID()

公共类 BookDAOImpl 实现 BookDAO {

Book book = getMangaByResultSet(resultSet,false); // to get not detailed book

   

我的服务如下所示:

    public Book getBookByResultSet(ResultSet resultSet,Boolean isDetailedBook) throws sqlException {

        PublisherDAO publisherDAO = new PublisherDAOImpl();
        AuthorDAO authorDAO       = new AuthorDAOImpl();
        GenreDAO genreDAO         = new GenreDAOImpl();

        Long id = resultSet.getLong("id");
        String title = resultSet.getString("title");
        String description = resultSet.getString("description");

        // filling book to display in list for displayAllBookService
        byte[] coverBytes = coverDAO.selectCoverByID(resultSet.getLong("cover_id"));
        String cover = ImageManager.encodeBytetoString(coverBytes);
        Book.Builder manga = new Book.Builder().setID(id)
                .setTitle(title)

        // additional fields filling to display single book displaySingleBookService
        if (isDetailedBook) {
            manga.setDescription(description)
                    .setPublisher(publisherDAO.selectPublisherByMangaID(publisherID))
                    .setAuthors(authorDAO.selectAllAuthorsByMangaID(id))
                    .setGenres(genreDAO.selectGenresByMangalanguageID(id,sessionLanguageID))
        }
        return manga.build();
    }
}

问题是我无法理解如何摆脱在 BookDAO 中使用服务调用一个 DAO。或者就我而言,我可以就这样离开吗?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...