2009-03-13 1 views
1

Ich habe eine Datenbank mit den Feldern ID (Nummer), Name (String), Adresse (String).Wie senden Sie die Ergebnisse der SQL-Abfrage an eine JSP-Seite?

Ich schrieb ein Java-Programm EmployeeDAO, um die Abfrage auszuführen. Ich speichere es in einem ResultSet-Objekt rs. Ich muss diese Ergebnismenge als Tabelle in einer JSP-Seite anzeigen. Wie sende ich diese rs an die JSP-Seite?

Antwort

0

Die elegante Lösung wäre, Ihre Ergebnismenge einer Liste von Objekten zuzuordnen. Werfen Sie einen Blick auf Federn RowMapper, um eine Vorstellung davon zu bekommen, wie man damit umgeht.

In Ihrem JSP können Sie dann eine <c:forEach/> Schleife verwenden, um diese Liste zu schreiben.

4

Zuerst erstellen Sie die Java-Modellklasse Employee mit den gleichen Feldern wie die Spalten in der emp_table. Zum Beispiel:

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; 
    } 
} 

Dann in Ihrer Methode _list() iterieren das Ergebnis wie folgt festgelegt:

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; 
    } 

In Ihrer JSP Sie über die Sammlung wie diese durchlaufen kann:

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