1

データベースから情報を取得したい。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>
       <% 
           } 
    }
       %>

データを取得するためのキーワードとしてauthorを使用しました。データベースに同じ名前の2人の著者がいますが、上記のコードは1人の著者情報、つまり最初の1人だけをフェッチし、もう1人を残します。両方のデータを取得すること

4

2 に答える 2

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>


 <% }  %>
于 2012-11-23T11:58:25.547 に答える
0
         <tr>
         <TD> <%= resultset.getString(name) %> </TD>
       <TD> <%= resultset.getString(author) %> </TD>
       <TD> <%= resultset.getString(money) %> </TD>
       <TD> <%= resultset.getString(company) %> </TD>
       </tr>

これで試してみてください。コードで同じものを使用しています

于 2014-06-04T04:14:22.740 に答える