Java 使用jsp搜索数据

Java 使用jsp搜索数据,java,jsp,Java,Jsp,我想在SQLServer数据库中搜索记录,然后使用jsp将其显示在网页中。我该怎么做?请帮帮我。下面给出了我的代码。 谢谢 您似乎从未设置参数应该是什么,用?表示?。我希望在一份准备好的声明上有一个setString调用。考虑如何使用JDBC。这并没有JSP问题那么严重,而是SQL查询中没有设置参数。您需要指定要查询的“名字” 假设它作为URL中的参数传递(http://localhost/myapp/mypage.jsp?firstName=Nick),这应该可以做到: <% C

我想在SQLServer数据库中搜索记录,然后使用jsp将其显示在网页中。我该怎么做?请帮帮我。下面给出了我的代码。 谢谢



您似乎从未设置参数应该是什么,用?表示?。我希望在一份准备好的声明上有一个setString调用。考虑如何使用JDBC。这并没有JSP问题那么严重,而是SQL查询中没有设置参数。

您需要指定要查询的“名字”

假设它作为URL中的参数传递(
http://localhost/myapp/mypage.jsp?firstName=Nick
),这应该可以做到:

<%

  Connection connection = null;
  PreparedStatement statement = null;
  ResultSet resultSet = null;

  try 
  {      
    connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","root");

    statement = connection.prepareStatement("SELECT firstName, lastName FROM test WHERE firstName = ?");
    statement.setString(1, request.getParameter("firstName"));

    resultSet = statement.executeQuery(); 

    while (resultSet.next())
    {
%>

<tr>
  <td><%= resultSet.getString(1) %></td>
  <td><%= resultSet.getString(2) %></td> 
</tr>

<%
    }
  }
  finally
  {
    if (resultSet != null) result.close();
    if (statement != null) statement.close();
    if (connection != null) connection.close();  
  }
%>

注:

  • 如前所述,使用保护装置可防止发生故障
  • 自从引入该机制以来,您就不需要向驱动程序加载
  • 从by索引中“获取”要高效得多
  • 您应该始终在
    finally
    块中释放数据库资源
  • 您应该真正使用连接池,而不是从JSP直接连接到数据库

首先,您使用的是
java.sql.Statement
,所以这会自动出错

stmt.executeQuery("SELECT * FROM test WHERE firstName = ?");
因为你不能在任何你能使用的地方设置名字,比如

stmt.executeQuery("SELECT * FROM test WHERE firstName = '"+name+"'");
或者使用java.sql.PreparedStatement 您可以完成以下任务:

PreparedStatement statement = connectionObject.prepareStatement("SELECT * FROM test WHERE firstName = ?");

statement.setString(parameterIndex, String firstName);

这段代码有什么问题?@Pablo查询,特别是predicateIt只显示表的标题,如FirstName和Password。不显示从数据库保存的数据。谢谢帮助。我已经在我的项目中添加了你的代码,但它仍然没有显示数据库中的数据。我的代码如下所示,如果有任何错误,请解释。谢谢,我已经将给定的代码添加到我的项目中,但它仍然不起作用。表示不显示数据库中的数据。请帮助我。大多数IDE都会调试JSP,但如果您在调试JSP时遇到问题,那么在连接完成后、查询运行后以及出现
异常时添加一些调试日志。如果没有看到错误,则应检查数据库是否包含期望看到的数据
PreparedStatement statement = connectionObject.prepareStatement("SELECT * FROM test WHERE firstName = ?");

statement.setString(parameterIndex, String firstName);