5

データベースからテーブルにデータを取得しようとしています。ただし、データは動的にロードする必要があります。

行と列を動的に作成する方法がわからない? 作成するのが行のみの場合は簡単に実行できますが、ページ上で列を動的に作成したいので、実行方法が混乱していますか?

私のJSPコード:

<table width="59%" border="1">
    <%
        MySql1 o = new MySql1();
        o.connect();
        ResultSet r;
        int counter=1;
        String q = "select * from category_master;";
        r = o.getdata(q);
        while(r.next())
        {
            %>
                <tr>
                     <td><%= r.getString(1)%></td>                                      
                </tr>
            <% 
        }
    %>
</table>

現在、最初の列を表示して<td>いますが、ユーザーが取得する列の数がわからない場合はどうすればよいですか? select query私は使用していたので、*私は取るために混乱してい<td>ます。テキストボックスまたはURLを使用してテーブル名も動的に渡すと仮定するため、すべて動的にしたいと考えています。

ここでMySql1 は、操作を実行するメソッドを持つ 1 つのクラス ファイルです。 connect()は db に接続するために使用さgetdata()れ、引数として渡されたクエリのデータを取得するために使用され、getdata()メソッドの戻り値の型は ですResultset

だから私はすべて動的にしたいのですが、それを行う方法がわかりません。

4

2 に答える 2

10

このコードを試してください:

<table width="59%" border="1">
    <%
        MySql1 o = new MySql1();
        o.connect();
        ResultSet r;
        int counter=1;
        String q = "select * from category_master;";
        r = o.getdata(q);
        ResultSetMetaData metaData = r.getMetaData();
        while(r.next())
        {
            %>
                <tr>
                 <%
                 for(int i = 1; i<=metaData.getColumnCount();i++)
                    { %>
                     <td>
                     <%= r.getString(i)%>
                     </td>
                <% 
                    }
                %>                   
                </tr>
            <% 
        }
    %>
</table>
于 2013-09-28T13:12:23.473 に答える