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