Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

menampilkan beberapa catatan dengan menggunakan resultset

Pertama buat kelas Javabean yang mewakili satu baris tabel. Saya tidak tahu data apa yang Anda bicarakan, tetapi mari kita gunakan User sebagai contoh dunia nyata:

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

Di atas tentu saja adalah contoh. Anda perlu memberi nama kelas dan properti yang sesuai dengan apa yang diwakili oleh data aktual.

Sekarang buat kelas DAO yang melakukan tugas interaksi basis data yang diinginkan dengan bantuan JDBC. Anda hanya perlu memastikan bahwa Anda memiliki driver SQL Server JDBC yang benar di classpath. Saya dapat merekomendasikan jTDS untuk ini karena jauh lebih baik dan lebih cepat daripada driver JDBC Microsoft sendiri. Oke, anggap saja Anda ingin membuat daftar semua User s yang memiliki age yang sama :

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

Sekarang buat kelas Servlet UsersServlet yang melakukan pra-pemrosesan data di doGet() metode.

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

Petakan servlet ini di web.xml sebagai berikut:

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

Perhatikan <url-pattern> , Anda dapat menjalankan servlet ini dengan http://example.com/context/users .

Sekarang buat file JSP users.jsp yang Anda tempatkan di WEB-INF folder sehingga tidak ada yang bisa langsung mengaksesnya tanpa menggunakan servlet. Anda dapat menggunakan JSTL c:forEach untuk mengulangi 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>

Jalankan dengan http://example.com/context/users . Seharusnya begitu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan sql nama kolom tidak valid

  2. Buat Database di SQL Server 2017

  3. Fungsi format tanggal SQL Server

  4. Apa yang dimaksud dengan ON [PRIMARY]?

  5. Simpan byte[] ke dalam database SQL Server dari C#