Decide how to implement data access. The
Enterprise JavaBeans (EJB) programming
model provides several distinct server-side component types: entity,
session, and message-driven beans, and servlets. Of these types, entity
beans are typically used to model business components in an application.
Entity beans have both state and behavior.
The
state of entity beans is persistent and is stored in a database.
As changes are made to an entity bean, its state is kept in synchronization
with the database record representing the bean. There are two types
of entity beans provided by the EJB model and these two types differ
in the mechanism used to provide persistence. These two types of
entity beans are container-managed persistence (CMP) beans
and bean-managed persistence (BMP) beans.
- With BMP beans, the developer manually produces code to manage
the persistent state of the bean.
- With CMP beans, the EJB container manages the persistent state
of the bean. Persistent state management is a complex and difficult
task; using CMP beans allows the developer to concentrate on business
logic by delegating persistence behavior to the container.
Typical
examples of CMP beans are Customer, Account, and so
on. Because CMP beans are objects, their data (state) is accessed
using field accessors. For example, a Customer entity bean
is likely to have fields such as name and phoneNumber.
These pieces of data are accessed using the accessor methods getName()/setName() and getPhoneNumber()/setPhoneNumber().
As a developer, you are not concerned with how this data is eventually
stored and retrieved from the backend database and can assume that
the integrity of the data is maintained by the container.
See the topic, Developing enterprise beans for information
on developing entity beans.
Tips:
- To maximize the efficiency of application
requests to relational databases, consider using Structured Query
Language in Java (SQLJ) when developing BMP
and CMP beans. This option is available for applications that use
the DB2® JDBC Universal Driver to access DB2 databases.
- Also consider using cursor holdability for
potential performance gains; see the topic, JDBC application cursor
holdability support, for details.
An alternative to developing entity beans
is using the Service Data Objects (SDO) framework, which is a unified
framework for data application development. With SDO, you do not need
to be familiar with a technology-specific API in order to access and
utilize data. You need to know only one API, the SDO API, which lets
you work with data from multiple sources, including relational databases,
entity EJB components, XML pages, web services, the Java Connector
Architecture, JavaServer Pages, and more.