将void方法转换为布尔java

将void方法转换为布尔java,java,mysql,database,Java,Mysql,Database,我想把它转换成一个布尔值,返回true或false。 我根本不知道怎么做,所以我需要一些帮助 public static void checkUSPASS(String a,String b) { try { con = DriverManager.getConnection(url,username, password); stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIV

我想把它转换成一个布尔值,返回true或false。 我根本不知道怎么做,所以我需要一些帮助

public static void checkUSPASS(String a,String b) {
    try {
           con = DriverManager.getConnection(url,username, password);
            stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            String sql;
          sql = "SELECT * FROM db Where Email='"+a+"' and Password='"+b+"'";
          ResultSet rs = stmt.executeQuery(sql);
          if(rs.next())
               {
               //return true 
               }
           else 
                {
                 //return false
                }

        } 
        catch (SQLException ex) {
        ex.printStackTrace(); }

        }

我可能应该把所有声明都拿出来,但我想听听大家的看法。

首先更改方法签名以返回值:

public static boolean checkUSPASS(String a,String b)
然后从方法中返回一个值:

return true;
或:

请注意,所有代码路径都必须返回一些值。因此,您的try块中有以下内容:

但是,如果到达您的捕获块,仍然必须返回一些内容:

catch (SQLException ex) {
    ex.printStackTrace();
    return false;
}

要在java中将函数更改为布尔函数,您只需在函数定义中将void更改为boolean,并在所有端点处返回true或false。

虽然这不是您问题的答案,但我相信它将帮助您改进方法。也许评论会更合适,但带有大量文本的评论很难阅读

像您一样使用SQL查询字符串组合。用它来代替那个

在方法内部处理异常或进一步抛出异常。打印堆栈跟踪不是异常处理,它向最终用户隐藏了问题

要进一步抛出异常,请将抛出SQLException添加到方法声明中,并从方法体中删除try/catch构造。它将允许调用方处理异常,并将避免以后出现许多难以捕获的错误

不要将密码存储为字符串,这是一种不好的做法。并存储密码哈希代码

最后,您的方法声明应该如下所示:

public static boolean checkUSPASS(String username,String hashCode) throws SQLException

“获取所有声明”是什么意思?@dotvav介于try和ifrs之间。接下来,这可能不应该在布尔值中,但我不确定。布尔值是一种基本类型,除了true或false之外,不能在布尔值中放置任何内容。您显示的代码是一个方法。您可以更改该方法的返回类型,并在其中放入任何您喜欢的内容。请给我几分钟时间尝试以下操作:,谢谢您的帮助。所有代码路径都必须返回值或抛出exception@dotvav:True,异常是方法的有效退出条件。但是这个方法不声明throws子句。如果OP愿意,也可以对方法签名进行更改。就是这样,我想出来了。成功了@David,这仅适用于已检查的异常。如果您抛出任何扩展RuntimeException的异常,您将不需要修改方法签名。我同意,我不是一个聪明人,我想我即将解决这个愚蠢的问题。我道歉!:你说得对,但这只是一个小项目,没什么大不了的。谢谢你,我将阅读关于hash密码的文章,以便在未来+1中进一步使用。我认为在学习和处理小项目时养成正确的习惯很重要。后来,当你在更大的项目上工作时,它会用稳定且可维护的代码来回报你。
catch (SQLException ex) {
    ex.printStackTrace();
    return false;
}
public static boolean checkUSPASS(String username,String hashCode) throws SQLException