【问题标题】:How do i retrieve data from the database using jsp我如何使用jsp从数据库中检索数据
【发布时间】:2014-06-04 12:14:22
【问题描述】:

我想从我的数据库中检索信息。我使用html从用户那里动态获取输入,并通过jsp从数据库(Mysql)中获取信息。以下是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>
       <% 
           } 
    }
       %>

我使用作者作为关键字来检索数据。现在我的数据库中有 2 个同名作者,但上面的代码只获取一个作者信息,即第一个,它留下另一个。我应该在哪里修改这段代码,以便它同时检索数据

【问题讨论】:

  • 你的代码容易被SQL注入!!不要那样做!! owasp.org/index.php/SQL_Injection 即使对于测试或自制软件,它也会造成坏习惯!使用准备好的语句!如果您将不同的值传递给:“id”参数,它会。
  • 获取列表而不是单个作者的详细信息,而不是迭代它

标签: javascript jsp


【解决方案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>


 <% }  %>

【讨论】:

    【解决方案2】:
             <tr>
             <TD> <%= resultset.getString(name) %> </TD>
           <TD> <%= resultset.getString(author) %> </TD>
           <TD> <%= resultset.getString(money) %> </TD>
           <TD> <%= resultset.getString(company) %> </TD>
           </tr>
    

    试试这个,它会起作用我在我的代码中使用相同的

    【讨论】:

      猜你喜欢
      • 2016-05-17
      • 2014-08-13
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 2019-06-14
      • 2021-12-31
      • 2019-05-30
      相关资源
      最近更新 更多