2009-03-13 7 views
1

私は、フィールドid(number)、name(string)、address(string)を持つデータベースを持っています。SQLクエリの結果をJSPページに送信するにはどうすればいいですか?

私は、クエリを実行するためのjavaプログラムEmployeeDAOを作成しました。私はそれをResultSetオブジェクトに格納していますrs。この結果セットをJSPページの表として表示する必要があります。このrsをJSPページに送信するにはどうすればよいですか?

public class EmployeeDAO 
{ 
    public _____ list() throws Exception 
    { 
     try 
     { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 
      String url = "jdbc:odbc:employee_dsn"; 
      Connection con = DriverManager.getConnection(url); 
      Statement stmt = con.createStatement(); 
      ResultSet rs = stmt.executeQuery("Select * from emp_table"); 
     } 
      catch (Exception e) 
     { 
      System.out.println(e); 
     } 
    } 
} 

答えて

0

優れたソリューションは、結果セットをオブジェクトのリストにマップすることです。これを処理する方法のアイデアを得るために、スプリングRowMapperを見てください。

あなたのJSPでは、<c:forEach/>ループを使用してこのリストを書き出すことはできません。

4

まず、emp_tableに列と同じフィールドを持つEmployeeのJavaモデルを作成します。たとえば:

<table> 
    <c:forEach var="emp" items="${empDao._list}"> 
    <tr> 
     <td>${emp.name}</td> 
     <td>${emp.lastName}</td> 
    </tr> 
    </c:forEach> 
</table> 

public List<Employee> _ list() throws Exception { 
    Connection con = null; 
    ResultSet rs = null; 
    List<Employee> result = new ArrayList<Employee>(); 
    try 
     { 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 
     String url = "jdbc:odbc:employee_dsn"; 
     con = DriverManager.getConnection(url); 
     Statement stmt = con.createStatement(); 
     rs = stmt.executeQuery("Select * from emp_table"); 
     while (rs.next()) { 
      Employee emp = new Employee(); 
      emp.setName(rs.getString("emp_name")); 
      emp.setLastName(rs.getString("emp_last_name")); 
      result.add(emp); 
     } 

     } 
     catch (Exception e) 
     {  
      System.out.println(e); 
     } finally { 
      if (null != rs) { 
       try { rs.close()} catch(Exception ex) {}; 
      } 
      if (null != con) { 
       try { con.close()} catch(Exception ex) {}; 
      } 
     } 
return result; 
    } 

があなたのJSPで使用すると、このようなコレクションを反復処理することがあります。

public class Employee { 
    private String name; 
    private String lastName; 
    public void setName(String name) { 
    this.name = name; 
    } 
    public String getName() { 
    return this.name; 
    } 
    public String getLastName() { 
    return this.lastName; 
    } 
    public void setLastName(String lastName) { 
    this.lastName = lastName; 
    } 
} 

は、その後、あなたの方法の_listで()のように結果セットを反復処理します

関連する問題