2012-01-26 17 views
1

私はMySQLデータベースを持っており、それを検索して、WebページのHTMLのdbと同じ列のテーブルに結果を表示しようとしています。私はサーブレットにJAVAを使用しています。サーブレットにJavaScriptを使用して検索文字列を送信するWebページを持っています。私は結果セットから行くのトラブルを抱えて、バックにそれを送信し、それを表示していますMySQLデータベースからデータを取得し、それをHTMLを使ってHTMLで表示する

  1. 接続データベース
  2. クエリデシベルへと結果セットに

を適切なデータを取得する:私はどのように知っていますテーブルのWebページ

答えて

0

ResultSetMetaDataを使用すると、HTMLテーブルにデータを表示できます。 'rs'は、クエリの結果セットの変数です。以下はあなたのために働くはずです

int rowCount = 0; 
PrintWriter out = response.getWriter(); 

out.println("<P ALIGN='center'><TABLE BORDER=1>"); 
ResultSetMetaData rsmd = rs.getMetaData(); 
int columnCount = rsmd.getColumnCount(); 
// table header 
out.println("<TR>"); 
for (int i = 0; i < columnCount; i++) { 
    out.println("<TH>" + rsmd.getColumnLabel(i + 1) + "</TH>"); 
    } 
out.println("</TR>"); 
// the data 
while (rs.next()) { 
    rowCount++; 
    out.println("<TR>"); 
    for (int i = 0; i < columnCount; i++) { 
    out.println("<TD>" + rs.getString(i + 1) + "</TD>"); 
    } 
    out.println("</TR>"); 
    } 
out.println("</TABLE></P>"); 
return rowCount; 
} 

詳細については、tutorialを参照してください。

+0

'ResultSetMetaData'を見て持っている - はい、それはカラム名ではなく、ハードコーディングサーブレットにそれを得るためのより良い方法です。ハードコーディングは、HTMLテーブルで、対応するデータベーステーブルの列名とは異なる列名を使用する場合にのみ実用的です。 –

+0

True!そこで、私は 'ResultSetMetaData'を使うことを提案しました。かなり良い点@WebUser .. –

+0

@ManBearPigに何か質問しましたか?私はstackexchangeの受信トレイにいくつかのコメントを見ましたが、ここでそれを読むことはできません。 –

0

ResultSetオブジェクトを繰り返し処理できず、サーブレットでHTMLを生成できないということですか?

if (rs.next()) { 

    out.print("<table><tr><th>column1</th><th>column2</th>...</tr>"); 

    do { 

     out.print("<tr>"); 
     out.print(new StringBuilder("<td>").append(rs.getObject("column1"))append("</td>").toString()); 
     out.print(new StringBuilder("<td>").append(rs.getObject("column2"))append("</td>").toString()); 
     ... 
     out.print("</tr>"); 
    } while (rs.next()); 

    out.print("</table>"); 
} 
0

ステップ
1)を使用すると、HTTPリクエストの属性にこのリストを設定し、データベースからリスト
2)をフェッチしているとします。
(setAttribute関数を使用)
3)、httpRequestからRequestDispatcherを取得します。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<Table> 
<Tr> 
    <td>col1</td> 
    <td>col2</td> 
</tr> 
<c:forEach var="i" items="${listName}"> 
    <tr> 
     <td> 
     <c:out value="${i['col1']}"/> 
     </td>   
     <td> 
     <c:out value="${i['col1']}"/> 
     </td> 
    <tr> 
</c:forEach> 
</table> 
1

これは、次のJSPの使用上の
4))は少し古い場合は、今(かなり良いチュートリアルです。これは、データベースからのデータの取得、MVC型アーキテクチャ、Java Bean、およびExpression言語付きJSPを使用して処理します。

http://pdf.coreservlets.com/

章17

関連する問題