这是我的代码
print(sum_double(1, 2))
3
print(sum_double(2, 2))
8
如果rs不为null,我想返回true,否则返回false。
但是我在这个方法的结束时遇到错误。它要求我再次返回true或false,即使我之前在try catch块中这样做了。
这是我第一次使用java。
请帮助!
答案 0 :(得分:3)
做这样的事情
public boolean changePassword(String password, String id) {
boolean result = false;
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(DB_URL, DBuser, DBpassword);
Statement st = conn.createStatement();
String updateQuery = "update teacher_registration set password="+password+"where teacher_id="+id;
ResultSet rs = st.executeQuery(updateQuery);
if(rs!=null){
result = true;
}else{
result = false;
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
答案 1 :(得分:1)
你的错误是你在try块中返回值。如果出现问题,你就不会退货。尝试在try块之外移动return语句或添加return false;在阻挡之后。
答案 2 :(得分:1)
我认为更新查询件不能很好地结合在一起。
在这种情况下,'其中'成为您密码的一部分(最后)。
试试这个:
String updateQuery = "update teacher_registration set password="+password+" where teacher_id="+id;
另外,你可以将你的情况转移到 catch 区块,或者做得更好,如下图所示。
您的代码的完整版本:
public boolean changePassword(String password, String id) {
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(DB_URL, DBuser, DBpassword);
Statement st = conn.createStatement();
String updateQuery = "update teacher_registration set password="+password+" where teacher_id="+id;
ResultSet rs = st.executeQuery(updateQuery);
if(rs!=null){
return true;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
答案 3 :(得分:0)
如果您的try块中生成了异常,则不会返回您的return语句。捕获异常后,您只需返回一个值。我假设如果更改成功则返回true,因此如果存在异常则返回false。
try{
// Your code
} catch (Exception e) {
e.printStackTrace();
}
return false;