gpt4 book ai didi

java - 抽象类 - 扩展类和 DAO

转载 作者:行者123 更新时间:2023-11-29 05:36:20 25 4
gpt4 key购买 nike

我有一个抽象类 User 和 3 个从此类扩展的类(Admin、Modurator、Lector)。

在我的数据库中,我有一个包含所需数据(用户名/密码/Security_lvl)的用户表。

我使用 DAO 连接到用户的数据库。

public class MysqlUserDao implements UserDao {
//
private static MysqlUserDao instance;

//
public static MysqlUserDao getInstance() {
if (instance == null)
instance = new MysqlUserDao();
return instance;
}
public void create(User user) {
try {
c = MySqlDAOFactory.getInstance().getConnection();
//
String sql = "insert into user values (?,?,?)";
//
prest = c.prepareStatement(sql);
//
prest.setString(1, user.getUserName());
prest.setString(2, user.getPassword());
prest.setInt(3, user.getRole().returnSecurityLevel());
//
prest.executeUpdate();
//
} catch (SQLException e) {
JdbcLogging.info("error item" + " :"
+ e);
} finally {
MySqlConnectionFactory.getInstance().closeResultSet(rs);
MySqlConnectionFactory.getInstance().closeStatement(prest);
MySqlConnectionFactory.getInstance().closeConnection(c);
}
}

在 java 中,根据用户类型,我创建特定的 Admin、Modurator 或 Lector 对象,以便我可以使用它们的特定方法。

现在我遇到的问题是,我需要这个 DAO 的用户。但是 User 是抽象的,我不创建任何 User 对象。我可以为每个其他类创建三个不同的 DAO,但它们会做同样的事情。有没有一种干净的方法可以做到这一点......

他们可能是一个简单的解决方案,但我只是没有看到。

最佳答案

您可以将 Admin、Moderator 或 Lector 实例作为参数传递给您的 create 方法。 Polymorphism在 Java 中允许这种行为。

关于java - 抽象类 - 扩展类和 DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10218576/

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