gpt4 book ai didi

java - 在参数中传入一个通用类

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

我想将几个类作为我的方法之一的参数传递。通过后我将如何获取类变量。例如,如果我想通过一个病人的类(class),我想知道病人的姓名、电话号码等。如果我想通过一个医生的类(class),我想知道医生的执业情况、姓名等。我想这些信息,以便我可以将它们放入数据库中。我打算为每个类创建多个方法,但想知道是否有一种方法可以创建一个方法并传入通用类。

这是我的通用方法的新代码/方法:

public boolean addNewUser(Object obj)
{
boolean success = false;

int executedValue = 0;

try
{
Connection conn = DBConnection.getConnection();

String query = "INSERT INTO Users (id, firstName, lastName, email, address, phonenumber, dob) VALUES (?,?,?,?,?,?,?)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, obj.getId); // not possible
}
catch(Exception e)
{
System.out.println(e);
}

return success;
}

这是我的旧方法

public boolean addNewPatient(Patient patient)
{
boolean success = false;

int executedValue = 0;

try
{
Connection conn = DBConnection.getConnection();

String query = "INSERT INTO Users (id, firstName, lastName, email, address, phonenumber, dob) VALUES (?,?,?,?,?,?,?)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setInt(1,patient.getId());
stmt.setString(2, patient.getFirstName());
etc...
}
catch(Exception e)
{
System.out.println(e);
}

return success;

}

最佳答案

您可以通过“继承”来做到这一点。由于您的数据库表名称为“USERS”,并且查看您的代码,看起来您没有区分患者用户和医生用户,所有内容都位于同一个表中,因此您可以创建一个父类作为 User 并具有所有常见属性,例如 idfirstNamelastName 等,然后具有 Patients 和Doctor 类“扩展”这个父类(每个子类都有更多特定于它们的字段/方法)。最后,您的 DAO 方法将是 addUser(User user)。例如,下面的示例类接受 User 对象。

public boolean addNewUser(User user) {
boolean success = false;

int executedValue = 0;

try {
Connection conn = DBConnection.getConnection();

String query = "INSERT INTO Users (id, firstName, lastName, email, address, phonenumber, dob) VALUES (?,?,?,?,?,?,?)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setInt(1, user.getId());
stmt.setString(2, user.getFirstName());
} catch (Exception e) {
System.out.println(e);
}

return success;
}
<小时/>

顺便说一句,您还可以创建一个名为 User 的接口(interface),然后让您的 PatientsDoctor 类实现该接口(interface),优点这种方法的特点是你正在“接口(interface)编程”,但是你是否应该有父类或接口(interface)取决于你的应用程序设计和其他因素,你最好决定它,但有一个接口(interface)是也是一种选择。您可以通过谷歌搜索代码/程序来了解更多信息。

关于java - 在参数中传入一个通用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43765266/

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