2012-11-23 142 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> 

試試這一個,將工作我使用同樣的在我的代碼

相關問題