Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

wyświetlanie wielu rekordów za pomocą zestawu wyników

Najpierw utwórz klasę Javabean, która reprezentuje jeden wiersz tabeli. Nie mam pojęcia, o jakich danych mówisz, ale weźmy User jako przykład ze świata rzeczywistego:

public class User {
    private Long id;
    private String name;
    private Integer age;
    // Add/generate public getters and setters.
}

Powyższe jest oczywiście przykładem. Musisz nazwać klasę i właściwości zgodnie z tym, co reprezentują rzeczywiste dane.

Teraz utwórz klasę DAO, która za pomocą JDBC wykona żądane zadanie interakcji z bazą danych. Musisz tylko upewnić się, że w ścieżce klasy znajduje się poprawny sterownik SQL Server JDBC. Mogę polecić do tego jTDS, ponieważ jest znacznie lepszy i szybszy niż własne sterowniki JDBC firmy Microsoft. OK, załóżmy, że chcesz wyświetlić listę wszystkich User s, które mają ten sam age :

public List<User> listByAge(Integer age) throws SQLException {
    Connection connection = null;
    PreparedStatement statement = null;
    ResultSet resultSet = null;
    List<User> users = new ArrayList<User>();

    try {
        connection = database.getConnection();
        statement = connection.prepareStatement("SELECT id, name, age FROM user WHERE age = ?");
        statement.setInt(1, age);
        resultSet = statement.executeQuery();
        while (resultSet.next()) {
            User user = new User();
            user.setId(resultSet.getLong("id"));
            user.setName(resultSet.getString("name"));
            user.setAge(resultSet.getInt("age"));
            users.add(user);
        }
    } finally {
        if (resultSet != null) try { resultSet.close(); } catch (SQLException logOrIgnore) {}
        if (statement != null) try { statement.close(); } catch (SQLException logOrIgnore) {}
        if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {}
    }

    return users;
}

Teraz utwórz klasę Servlet UsersServlet który wykonuje wstępne przetwarzanie danych w doGet() metoda.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    List<User> users = userDAO.list();
    request.setAttribute("users", users);
    request.getRequestDispatcher("/WEB-INF/users.jsp").forward(request, response);
}

Zmapuj ten serwlet w web.xml w następujący sposób:

    <servlet>
        <servlet-name>users</servlet-name>
        <servlet-class>mypackage.UsersServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>users</servlet-name>
        <url-pattern>/users</url-pattern>
    </servlet-mapping>

Zwróć uwagę na <url-pattern> , możesz uruchomić ten serwlet przez http://example.com/context/users .

Teraz utwórz plik JSP users.jsp które umieszczasz w WEB-INF tak, aby nikt nie miał do niego bezpośredniego dostępu bez użycia serwletu. Możesz użyć JSTL c:forEach iterować po List :

<table>
    <thead>
        <tr><th>ID</th><th>Name</th><th>Age</th></tr>
    </thead>
    <tbody>
        <c:forEach items="${users}" var="user">
            <tr><td>${user.id}</td><td>${user.name}</td><td>${user.age}</td></tr>
        </c:forEach>
    </tbody>
</table>

Wykonaj go przez http://example.com/context/users . To powinno być.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oblicz całkowity koszt monitorowania serwera SQL

  2. Jak wywołać procedurę składowaną z argumentami przy użyciu programu sqlcmd.exe?

  3. Utwórz bazę danych w SQL Server 2017

  4. Aktualizowanie danych Salesforce za pomocą kursora SQL Server

  5. Jak połączyć się z bazą danych MSSQL przy użyciu modułu DBI Perla w systemie Windows?