【问题标题】:Search inside table MySql database with JSB使用 JSB 在表 MySql 数据库中搜索
【发布时间】:2015-09-18 20:09:00
【问题描述】:

我是一名初级程序员,我已经为数据输入构建了页面,并且页面显示了所有条目,但是现在我想在表格中显示特定的行,哪些代码可以帮助我?

我的表格列:全名 - 电子邮件 - 电话 - 教育 我想通过电子邮件搜索以在一页中显示其他数据。

我在网上找到了这段代码:

<%@page import="java.sql.*"%>
<% Class.forName("com.mysql.jdbc.Driver");%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%!
            public class Showit {

                String URL = "jdbc:mysql://localhost/regdata";
                String USERNAME = "root";
                String PASSWORD = "admin";

                Connection conn = null;
                PreparedStatement selectRegister = null;
                ResultSet resultSet = null;

                public Showit() {
                    try {
                        conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
                        selectRegister = conn.prepareStatement(
                                "SELECT a.fullname, a.email,"
                                + " FROM mainr a,"
                                + "WHERE a.fullname = ?"
                                + "AND a.email = ?");

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }

                public ResultSet getShowit(String fullname, String email) {
                    try {
                        selectRegister.setString(1, fullname);
                        selectRegister.setString(2, email);
                        resultSet = selectRegister.executeQuery();

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return resultSet;
                }
            }

        %>
        <%
            String fullname = new String();
            String email = new String();
            if (request.getParameter("fullname") != null) {
                fullname = request.getParameter("fullname");

            }
            if (request.getParameter("email") != null) {
                fullname = request.getParameter("email");

            }

            Showit showit = new Showit();
            ResultSet showits = showit.getShowit(fullname, email);

        %>
        <table border="1">

            <tbody>
                <tr>
                    <td>Full Name</td>
                    <td>Email</td>
                    <td>Title</td>
                </tr>
                <% while (showits.next()) {%>
                <tr>
                    <td><%= showits.getString("fullname")%></td>
                    <td><%= showits.getString("email")%></td>
                    <td><%= showits.getString("Phone")%></td>
                </tr>
                <% }%>
            </tbody>
        </table>


    </body>
</html>

与此页面相关的:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.Scanner" %>
<% Class.forName("com.mysql.jdbc.Driver");%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Search</title>
    </head>
    <body>
        <form name="search" action="display.jsp" method="POST">
            <table border="0">
                <tbody>
                    <tr>
                        <td>Full Name</td>
                        <td><input type="text" name="fullname" value="" size="50" /></td>
                    </tr>
                    <tr>
                        <td>E-Mail</td>
                        <td><input type="text" name="email" value=""  size="50" /></td>
                    </tr>
                </tbody>
            </table>
            <input type="reset" value="Reset" name="reset" />
            <input type="submit" value="Submit" name="Submit" />
        </form>
    </body>
</html>

但它不起作用。

【问题讨论】:

    标签: java mysql jsp netbeans web-applications


    【解决方案1】:

    问题可能出在这一行:

    fullname = request.getParameter("email");
    

    请注意,您将 email 参数分配给 fullname 变量。

    【讨论】:

    • 我把它改成 email = request.getParameter("email");
    【解决方案2】:

    首先我看到的是查询是错误的。像这样删除表别名“a”(此处为第 2 行)之后的 ,:

     "SELECT a.fullname, a.email,"
              + " FROM mainr a"
              + "WHERE a.fullname = ?"
              + "AND a.email = ?");
    

    【讨论】:

    • 仍然“错误:java.lang.NullPointerException”
    • 查询中每一行的末尾也必须有一个空格,否则你会得到这样的字符串:SELECT a.fullname, a.email, FROM mainr aWHERE a.fullname = ?AND a.email = ?
    • 我在它前面放了空格,但仍然出错。我认为我的代码是错误的
    【解决方案3】:

    这里还有一个问题:

    <td><%= showits.getString("Phone")%></td>
    

    您没有在 SELECT 语句中包含 Phone,因此它不会存在于 ResultSet 中。

    【讨论】:

      猜你喜欢
      • 2012-01-25
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-02
      相关资源
      最近更新 更多