Ils ne représentent souvent que des données du monde réel. Voici un exemple simple d'un 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);
}
}
Mise en œuvre de Serializable
n'est pas obligatoire en soi, mais très utile si vous souhaitez être en mesure de conserver ou de transférer des Javabeans en dehors de la mémoire de Java, par exemple sur un disque dur ou sur un réseau.
Dans une classe DAO par exemple, vous pouvez l'utiliser pour créer une liste d'utilisateurs dans laquelle vous magasin les données de la user
dans la base de données :
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;
Dans une classe Servlet, par exemple, vous pouvez l'utiliser pour transfert les données de la base de données vers l'interface utilisateur :
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
List<User> users = userDAO.list();
request.setAttribute("users", users);
request.getRequestDispatcher("users.jsp").forward(request, response);
}
Dans une page JSP par exemple, vous pouvez accès il par EL qui respecte les conventions Javabean, pour afficher les données :
<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>
Est-ce que ça a du sens ? Vous voyez, c'est une sorte de convention que vous pouvez utiliser partout pour magasin , transfert y accès données.
Voir aussi :
11 votes
J'espère que vous ne confondez pas entre "Java beans" et "Enterprise Java Beans ou EJBs".
62 votes
En fait, je ne connais pas les haricots eux-mêmes, alors comment puis-je les confondre avec les EJB Y a-t-il quelque chose de spécial avec eux ?