In the examples for this chapter, we showed database access performed directly from CDI named beans serving as controllers. We did this to get the point across without getting mired in the details; however, in general, this is not a good practice. Database access code should be encapsulated in Data Access Objects (DAOs).
For more information on the DAO design pattern, see http://www.oracle.com/technetwork/java/dao-138818.html.
Named beans typically assume the role of controllers and/or model when using the Model-View-Controller (MVC) design pattern, a practice so common that it has become the de facto standard for Java EE applications.
For more information about the MVC design pattern, see http://www.oracle.com/technetwork/java/mvc-140477.html.
Additionally, we chose not to show any user interface code in our examples since it is irrelevant to the topic at hand. However...