2012-11-23 115 views
1

我想从我的数据库检索信息。我从用户使用html动态获取输入,并通过jsp我从数据库(Mysql)获取信息。以下是jsp代码如何从数据库检索数据使用jsp

 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/indi", "root", ""); 

Statement statement = connection.createStatement(); 

     String id1 = request.getParameter("id"); 

     ResultSet resultset = statement.executeQuery("select * from books where author = '" + id1 + "'") ; 

      if(!resultset.next()) { 
       out.println("Sorry, could not find that publisher. "); 
      } else { 
     %> 

     <TABLE BORDER="1"> 
      <TR> 
       <TH>name</TH> 
       <TH>author</TH> 
       <TH>money</TH> 
       <TH>company</TH> 

      </TR> 


      <TR> 
       <TD> <%= resultset.getString(1) %> </TD> 
       <TD> <%= resultset.getString(2) %> </TD> 
       <TD> <%= resultset.getString(3) %> </TD> 
       <TD> <%= resultset.getString(4) %> </TD> 

      </TR> 

     </TABLE> 
     <BR> 
     <% 
      } 
    } 
     %> 

我用笔者作为关键字来检索data.Now我有2名作者名称相同的在我的数据库,但上面的代码只获取一个作者即第一个信息,并留下对方。我应该在哪里修改此代码,以便它将检索数据

+1

您的代码很容易出现SQL注入!不要这样做! https://www.owasp.org/index.php/SQL_Injection即使是测试或家庭成长的软件也会造成不良影响!使用准备好的语句!如果你将不同的值传递给:“id”参数。 – fatfredyy

+0

获取列表而不是单个作者的详细信息,并重复它 –

回答

1

尝试对结果集进行循环。

while(rs.next()){ 
    %> 
<TABLE BORDER="1"> 
     <TR> 
      <TH>name</TH> 
      <TH>author</TH> 
      <TH>money</TH> 
      <TH>company</TH> 

     </TR> 


     <TR> 
      <TD> <%= resultset.getString(i) %> </TD> 
      <TD> <%= resultset.getString(i+1) %> </TD> 
      <TD> <%= resultset.getString(i+2) %> </TD> 
      <TD> <%= resultset.getString(i+3) %> </TD> 

     </TR> 

    </TABLE> 
    <BR> 


<% } %> 
0
  <tr> 
     <TD> <%= resultset.getString(name) %> </TD> 
     <TD> <%= resultset.getString(author) %> </TD> 
     <TD> <%= resultset.getString(money) %> </TD> 
     <TD> <%= resultset.getString(company) %> </TD> 
     </tr> 

试试这一个,将工作我使用同样的在我的代码

相关问题