-4
问题肯定是范围之内,但是,我有问题搞清楚为什么,因为我宣布,被存储在循环外的信息访问数据库信息的循环内,并且存储外
public Member searchMember (String email) {
int Sid = 0;
String name ="";
String adr = "";
String phone = "";
String email2 = "";
String pass = "";
boolean status =false;
Member a = new Member(name,adr,phone,email2,pass);
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://compsi:3306/mcrowley","mcrowley","700463874");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
System.out.println(email);
String query = "Select id,name,address,phoneNum,email,password,LoginStatus From member WHERE email Like '%"+email+"%' ";
ResultSet results = stmt.executeQuery(query);
System.out.println("Before while loop");
int count = 0;
while (results.next() || count == 0) {
if (count == 0)
results.absolute(1);
System.out.println("Start while loop");
Sid = results.getInt(1);
//System.out.println(Sid+" this is test in jdbc");
name = results.getString(2);
//System.out.println(name+" this is test in jdbc");
adr = results.getString("address");
phone = results.getString("phoneNum");
email2 = results.getString("email");
pass = results.getString("password");
int stat = results.getInt("loginStatus");
if (stat == 0) {
status = false;
}
else {
status = true;
}
count++;
if (!results.next()) {
a.setName(name);
a.setAddress(adr);
a.setPhoneNumber(phone);
a.setEmail(email2);
a.setPassword(pass);
a.setId(Sid);
a.setStatus(status);
return a;
}
}
System.out.println("After while loop");
a.setName(name);
a.setAddress(adr);
a.setPhoneNumber(phone);
a.setEmail(email2);
a.setPassword(pass);
a.setId(Sid);
a.setStatus(status);
//create object & print
stmt.close();
con.close();
return a;
}
catch (Exception e) {
e.printStackTrace();
}
return a;
}
有什么问题?请说明它.... – Blub