我有几个类,我想作为我的一个方法的参数传入。如何在传递后获取类变量。例如,如果我想通过病人课程,我想知道病人姓名,电话号码等。如果我想通过医生课程,我想知道医生的诊所,姓名,我希望这些信息能够将它们放入数据库中。我打算为每个类制作几个方法,但是想知道有没有办法制作一个方法并传入一般类。
这是我的一般方法的新代码/方法:
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;
}
答案 0 :(得分:1)
您可以通过“继承”来完成此操作。由于您的数据库表名称为“USERS”并且查看您的代码,看起来您没有区分患者用户和医生用户,所有内容都在同一个表中,因此您可以创建父类User
并且具有所有常见属性,例如id
,firstName
,lastName
等,然后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
的界面,然后让你的Patients
和Doctor
类实现这个界面,这种方法的优势就是你“编程到接口“,但是你是否应该有父类或接口取决于你的应用程序设计和其他因素,你最好决定它,但是有一个接口也是一个选项。你可以谷歌代码/程序界面,以了解更多信息。
答案 1 :(得分:0)
我建议您创建一个界面,然后让Patient
和Doctor
或具有相同属性的任何其他对象实现它。
public interface IUser{
int id();
String firstName();
String lastName();
String email();
String address();
int phoneNumber();
String dob();
}
然后更改addNewUser
方法以接受IUser
类型的参数。
public boolean addNewUser(IUser user){
...
...
...
}
现在,您应该能够通过界面调用user
对象中的所有方法。