Java 如何使用if-else语句输入非字段的值并返回;“未找到”;
正如标题所说。我很难返回一个表示“未找到”的值, 当我尝试输入一个不在范围内的值时 附言:我是新来的,所以要温柔。呵呵Java 如何使用if-else语句输入非字段的值并返回;“未找到”;,java,mysql,if-statement,jdbc,Java,Mysql,If Statement,Jdbc,正如标题所说。我很难返回一个表示“未找到”的值, 当我尝试输入一个不在范围内的值时 附言:我是新来的,所以要温柔。呵呵 public static void checkStatus(String ID_No) throws SQLException{ try{ ResultSet rs; String validStatus = "SELECT * FROM validation"; st = connection.createStatement(); r
public static void checkStatus(String ID_No) throws SQLException{
try{
ResultSet rs;
String validStatus = "SELECT * FROM validation";
st = connection.createStatement();
rs = st.executeQuery(validStatus);
while(rs.next()){
getStudValid = rs.getString("ID_No");
getValidStatus = rs.getString("Validation");
if (!getValidStatus.equals("Accepted") && getStudValid.equals(ID_No)){
System.out.println("Student " + getStudValid + " Please complete the required pre-requisite processes.");
} else if (getValidStatus.equals("Accepted") && getStudValid.equals(ID_No)){
System.out.println("Student " + getStudValid + " You are Enrolled!");
}
}
rs.close();
} catch(SQLException e){
System.out.println("Updated "+ ID_No);
}
}
在返回
字符串“notfound”
的方法中使用if-else条件
改变
public static void checkStatus(String ID_No) throws SQLException{
至
public static String checkStatus(String ID_No) throws SQLException{
然后返回一个字符串,无论是成功还是“未找到”
您可以开发如下逻辑-
boolean found = false;
while(rs.next()){
getStudValid = rs.getString("ID_No");
getValidStatus = rs.getString("Validation");
if(getStudValid.equals(ID_No)){
if(getValidStatus.equals("Accepted"))
System.out.println("Student " + getStudValid + " You are Enrolled!");
else
System.out.println("Student " + getStudValid + " Please complete the required pre-requisite processes.");
found =true;
}
}
if(!found)
System.out.println("Student "+ID_No+" Not found");
但我建议您通过优化查询来优化此代码-SELECT*FROM validation where ID\u No=?
,并使用PrepareStatement
String validStatus = "SELECT * FROM validation where ID_No=?";
pst = connection.prepareStatement(validStatus);
pst.setString(1,Id_No);
rs = pst..executeQuery();
if(rs.next()){
if(getValidStatus.equals("Accepted"))
System.out.println("Student " + getStudValid + " You are Enrolled!");
else
System.out.println("Student " + getStudValid + " Please complete the required pre-requisite processes.");
}else
System.out.println("Student "+ID_No+" Not found");
一些相关话题-
因此,本质上,当rs.next保持不变时,这意味着在执行查询时会找到某种类型的值
next返回一个布尔值,使用该布尔值可以执行如下操作
boolean isFound = rs.next();
if(isFound)
{
// your while loop
// at the end of your while loop add isFound = rs.next()
}
else
{
return "Not Found";
}
这取决于当找不到学生时你希望发生什么。这里有两种方法
抛出异常(如果学生不存在则为错误)
或者您可以返回一个值
int exists = checkStatus("studentA");
if(exists == 0)
System.out.println("Student wasnt found");
public static int checkStatus(String ID_No) throws SQLException{
try{
ResultSet rs;
String validStatus = "SELECT * FROM validation";
st = connection.createStatement();
rs = st.executeQuery(validStatus);
while(rs.next()){
getStudValid = rs.getString("ID_No");
getValidStatus = rs.getString("Validation");
if (!getValidStatus.equals("Accepted") && getStudValid.equals(ID_No)){
System.out.println("Student " + getStudValid + " Please complete the required pre-requisite processes.");
return 1; // found
} else if (getValidStatus.equals("Accepted") && getStudValid.equals(ID_No)){
System.out.println("Student " + getStudValid + " You are Enrolled!");
return 1; // found
}
}
return 0; // no student found
rs.close();
} catch(SQLException e){
System.out.println("Updated "+ ID_No);
return -1; // error occured
}
}
我不明白这个问题。很抱歉,我被这个问题弄糊涂了。我试着插入一些代码,结果是这样的:输入学生编号:201200002学生未找到学生201200002您已注册!学生未找到学生未找到学生未找到“catch(SQLException e){System.out.println(“Updated”+ID_No);}”这很奇怪。它被捕获意味着不更新DONE@Srinath我在主代码中做了一些调整,所以没有问题。我只对If-Else语句有问题:>但是感谢caringI回滚了您的编辑,修复了您的代码。在你的问题中加入解决方案无助于人们看待这个问题。如果一个答案解决了你的问题,那么要么接受这个答案,要么发布你自己的答案作为答案。在这种情况下,由于您在编辑中使用了Subhrajyoti Majumder,您应该接受他的答案。我对If-Else条件有问题。谢谢您的回答!:>我真的很喜欢它。顺便说一句,我试图在不改变MySQL数据库的情况下通过java操作它。@JustAnotherLeech where子句,prepared stm不需要在sql结构中进行任何更改,使用executeQuery(String)
对PreparedStatement
抛出一个SQLException
,您应该使用executeQuery()
。
int exists = checkStatus("studentA");
if(exists == 0)
System.out.println("Student wasnt found");
public static int checkStatus(String ID_No) throws SQLException{
try{
ResultSet rs;
String validStatus = "SELECT * FROM validation";
st = connection.createStatement();
rs = st.executeQuery(validStatus);
while(rs.next()){
getStudValid = rs.getString("ID_No");
getValidStatus = rs.getString("Validation");
if (!getValidStatus.equals("Accepted") && getStudValid.equals(ID_No)){
System.out.println("Student " + getStudValid + " Please complete the required pre-requisite processes.");
return 1; // found
} else if (getValidStatus.equals("Accepted") && getStudValid.equals(ID_No)){
System.out.println("Student " + getStudValid + " You are Enrolled!");
return 1; // found
}
}
return 0; // no student found
rs.close();
} catch(SQLException e){
System.out.println("Updated "+ ID_No);
return -1; // error occured
}
}