Java 当我只能访问对象的一个字段时,如何返回该对象?
对不起,如果这不合理,我想不出更好的表达方式。希望我的代码能更好地说明我的问题 所以在这个方法中,我想返回一个Myuser对象。Myuser对象大约有8个字符串字段,其中一个是userId 如您所见,当调用此方法时,会传入一个字符串。如果这个字符串的值与Myuser对象中的userId字段的值相同,那么我希望它返回完整的Myuser对象。否则返回nullJava 当我只能访问对象的一个字段时,如何返回该对象?,java,sql,jdbc,Java,Sql,Jdbc,对不起,如果这不合理,我想不出更好的表达方式。希望我的代码能更好地说明我的问题 所以在这个方法中,我想返回一个Myuser对象。Myuser对象大约有8个字符串字段,其中一个是userId 如您所见,当调用此方法时,会传入一个字符串。如果这个字符串的值与Myuser对象中的userId字段的值相同,那么我希望它返回完整的Myuser对象。否则返回null public Myuser getRecord(String userId) { Connection cnnct = null;
public Myuser getRecord(String userId) {
Connection cnnct = null;
PreparedStatement pStmnt = null;
Myuser myusr = null;
boolean result = false;
try {
cnnct = getConnection();
String preQueryStatement = "SELECT * FROM MYUSER WHERE USERID = ?";
pStmnt = cnnct.prepareStatement(preQueryStatement);
pStmnt.setString(1, userId);
ResultSet rslt = pStmnt.executeQuery();
result = rslt.next();
if (result) {
//return myusr in its entirety
}
} catch (SQLException ex) {
while (ex != null) {
ex.printStackTrace();
ex = ex.getNextException();
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (pStmnt != null) {
try {
pStmnt.close();
} catch (SQLException e) {
}
}
if (cnnct != null) {
try {
cnnct.close();
} catch (SQLException sqlEx) {
}
}
}
return myusr;
}
编辑:我想我也会发布Myuser类
public class Myuser {
private String userid;
private String name;
private String password;
private String email;
private String phone;
private String address;
private String secQn;
private String secAns;
public Myuser(String userid, String name, String password, String email, String phone, String address, String secQn, String secAns) {
this.userid = userid;
this.name = name;
this.password = password;
this.email = email;
this.phone = phone;
this.address = address;
this.secQn = secQn;
this.secAns = secAns;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getSecQn() {
return secQn;
}
public void setSecQn(String secQn) {
this.secQn = secQn;
}
public String getSecAns() {
return secAns;
}
public void setSecAns(String secAns) {
this.secAns = secAns;
}
}
您可以轻松地使用
result.getXXX(字段名称)
:
注意不需要使用result=rslt.next()
在之前,如果(结果)
,则必须直接使用
if (rslt.next()) {
...
}
您可以轻松地使用
result.getXXX(字段名称)
:
注意不需要使用result=rslt.next()
在之前,如果(结果)
,则必须直接使用
if (rslt.next()) {
...
}
如果你只使用一个普通的jdbc连接器,我坚信你会这样做,你必须从结果中获取信息,用这些特定的信息创建一个新的Myuser对象如果你只使用一个普通的jdbc连接器,我坚信你会这样做,您必须从结果中获取信息,才能使用该特定信息创建一个新的Myuser对象