Java 如何使用SQL数据库在JSP中执行简单的电子邮件/密码验证?

Java 如何使用SQL数据库在JSP中执行简单的电子邮件/密码验证?,java,mysql,database,jsp,email-verification,Java,Mysql,Database,Jsp,Email Verification,我有成功建立到mySQL数据库连接的代码 String email, password; //assume these are already loaded with user-entered data. try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { return false; }

我有成功建立到mySQL数据库连接的代码

    String email, password; //assume these are already loaded with user-entered data.

    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        return false;
    }
    
    Connection conn = null;
    
    try {
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/main", "root", "password123");
    } catch (SQLException e) {
        return false;
    }
    
    //perform my database actions here///////////////
    
    ///////////////////////////////////////////////////
    
    try {
        conn.close();
    } catch (SQLException e) {
        return false;
    }
我在上面代码的范围内有几个字符串,它们已经包含了用户在登录页面上输入的电子邮件和密码。我需要在数据库中查找匹配的电子邮件地址,然后验证密码是否与用户在表单中输入的密码匹配

我的表有3列:id、电子邮件和密码

我已经使用sql工作台将两行推入表中

1|email@gmail.com|密码1

2|email2@gmail.com|密码2

我假设在纯SQL中,我必须执行以下操作

SELECT * FROM users WHERE email LIKE 'email@gmail.com' AND password LIKE 'password1';

但我不太确定如何实际将这些SQL命令发送到数据库并使用JSP接收信息。此外,我不完全确定我的SQL逻辑是否是验证密码的理想方法。我对上面的SQL命令的想法是,如果数据库找到任何符合条件的行,则验证电子邮件/密码组合。但不确定这是否是一个很好的方法。我不是在寻找最安全、最复杂的方法,我只是在寻找目前最简单、最有意义的方法。我找到的每一个教程似乎都有不同的做法,我有点困惑。

这里有一个例子,你可以从我所研究的内容中使用(我假设“conn”的连接是显而易见的):

在您的情况下,而不是
item=新项目(rec)

您的代码会注意到用户在找到记录时是有效的。

为什么要使用LIKE而不是=operator?有在网上使用JDBC的例子。在网上搜索任何java mvc教程。你可以随时告诉我你想用哪一个,但你不太明白。这里的一切对我来说都很好,除了在执行查询后,我执行rec.getString(“电子邮件”)和rec.getString(“密码”)后,什么也没有得到,尽管我已经多次验证了用户(我)所做的键入的内容与数据库中的内容确实匹配。它似乎什么都没有得到。您是否执行了
rec.next()
。最初,即使只有一条记录,数据集也不会指向第一条记录。否则,您可能需要发布另一个问题。
    PreparedStatement st = null;
    ResultSet rec = null;

    SprayJobItem item = null;

    try {

        st = conn.prepareStatement("select * from sprayjob where headerref=? and jobname=?");
        st.setString(1, request.getParameter("joblistref"));
        st.setString(2, request.getParameter("jobname"));

        rec = st.executeQuery();
        if (rec.next()) {
            item = new SprayJobItem(rec);
        }

    } catch (SQLException ex) {
        // handle any errors
        ReportError.errorReport("SQLException: " + ex.getMessage());
        ReportError.errorReport("SQLState: " + ex.getSQLState());
        ReportError.errorReport("VendorError: " + ex.getErrorCode());

    } catch (Exception ex) {
        ReportError.errorReport("Error: " + ex.getMessage());
    } finally {
        // Always make sure result sets and statements are closed,
        if (ps != null) {
        try {
            ps.close();
        } catch (SQLException e) {
            ;
        }
        ps = null;
    }
    if (rs != null) {
        try {
            rs.close();
        } catch (SQLException e) {
            ;
        }
        rs = null;
    }
    }