พวกเขามักจะแสดงข้อมูลโลกแห่งความจริง นี่เป็นตัวอย่างง่ายๆของ Javabean:
public class User implements java.io.Serializable {
// Properties.
private Long id;
private String name;
private Date birthdate;
// Getters.
public Long getId() { return id; }
public String getName() { return name; }
public Date getBirthdate() { return birthdate; }
// Setters.
public void setId(Long id) { this.id = id; }
public void setName(String name) { this.name = name; }
public void setBirthdate(Date birthdate) { this.birthdate = birthdate; }
// Important java.lang.Object overrides.
public boolean equals(Object other) {
return (other instanceof User) && (id != null) ? id.equals(((User) other).id) : (other == this);
}
public int hashCode() {
return (id != null) ? (getClass().hashCode() + id.hashCode()) : super.hashCode();
}
public String toString() {
return String.format("User[id=%d,name=%s,birthdate=%d]", id, name, birthdate);
}
}
การนำไปปฏิบัติSerializable
นั้นไม่ได้บังคับอย่างเหมาะสม แต่มีประโยชน์มากหากคุณต้องการที่จะคงอยู่หรือถ่ายโอน Javabeans นอกหน่วยความจำของ Java เช่นในฮาร์ดดิสก์หรือผ่านเครือข่าย
ในตัวอย่างเช่นคลาส DAO คุณสามารถใช้เพื่อสร้างรายชื่อผู้ใช้ที่คุณเก็บข้อมูลของuser
ตารางในฐานข้อมูล:
List<User> users = new ArrayList<User>();
while (resultSet.next()) {
User user = new User();
user.setId(resultSet.getLong("id"));
user.setName(resultSet.getString("name"));
user.setBirthdate(resultSet.getDate("birthdate"));
users.add(user);
}
return users;
ในตัวอย่างคลาส Servlet คุณสามารถใช้เพื่อถ่ายโอนข้อมูลจากฐานข้อมูลไปยัง UI:
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
List<User> users = userDAO.list();
request.setAttribute("users", users);
request.getRequestDispatcher("users.jsp").forward(request, response);
}
ตัวอย่างเช่นหน้า JSP คุณสามารถเข้าถึงได้โดยELซึ่งตามหลักการ Javabean เพื่อแสดงข้อมูล:
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Birthdate</th>
</tr>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.id}</td>
<td><c:out value="${user.name}" /></td>
<td><fmt:formatDate value="${user.birthdate}" pattern="yyyy-MM-dd" /></td>
</tr>
</c:forEach>
</table>
มันสมเหตุสมผลหรือไม่ คุณจะเห็นว่ามันเป็นชนิดของการประชุมซึ่งคุณสามารถใช้ทุกที่เพื่อการจัดเก็บ , การถ่ายโอนและการเข้าถึงข้อมูล
ดูสิ่งนี้ด้วย: