gpt4 book ai didi

Java-传递未知的DAO

转载 作者:行者123 更新时间:2023-12-01 12:45:06 25 4
gpt4 key购买 nike

我创建了一个通用方法,我将在其中传递一个 DAO,但它不会是一个 DAO。就像我不仅要通过 StudentDao,还要通过 TeachersDao 和 ClubsDao。

原来,这是我的方法:

    public static String getSomething(StudentDao, String id){

Properties proFind = new Properties();
proFind.put(StudentDao.ID, id);

dao.select(proFind).get(0);

return somethingINeed;
}

但后来我决定只使用一种方法,使其成为通用的..像这样的事情:

    public static <T> String getSomething(Class<T> dao, String id){

Properties proFind = new Properties();
proFind.put(StudentDao.ID, id);

dao.select(proFind).get(0);

return somethingINeed;
}

但这不正确。

所以我的目标是通过该方法传递任何 Dao。我错过了java中的一些东西吗?任何想法或启发都将不胜感激。

[编辑]

我所有的 Daos 都扩展了 Dao,即接口(interface)。我关心的只是这个方法,我如何使用任何道。使用的属性也可以在接口(interface) Dao 中找到。

最佳答案

我同意 Kayaman 的上述评论。

您的服务/业务层应该与多个 DAO 交互,以在不同的实体上执行 CRUD 操作,例如学生,老师。

public class MyService {

private StudentDao studentDao;
private TeacherDao teacherDao;

// Daos injected

public Student findStudent(Long id) {
return this.studentDao.find(id);
}

// Other methods involving students or teachers
}

在我看来,尝试拥有一个通用的 DAO 很麻烦,而且不是一个好的设计。

如果您有基本 DAO 和基本实体类,您仍然可以将大量样板 CRUD 代码推送到基类中。当我第一次开始使用 DAO 时,我发现以下文章非常有用:Don't repeat the DAO!

关于Java-传递未知的DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24779704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com