Friday, March 13, 2009

What is the advantage of using Entity bean for database operations, over

Question :What is the advantage of using Entity bean for database operations, over
directly using JDBC API to do database operations? When would I use one
over the other? (EJB)

Answer :Entity Beans actually represents the data in a database. It is not that
Entity Beans replaces JDBC API. There are two types of Entity Beans
Container Managed and Bean Mananged. In Container Managed Entity
Bean - Whenever the instance of the bean is created the container
automatically retrieves the data from the DB/Persistance storage and
assigns to the object variables in bean for user to manipulate or use them.
For this the developer needs to map the fields in the database to the
variables in deployment descriptor files (which varies for each vendor).
In the Bean Managed Entity Bean - The developer has to specifically make
connection, retrive values, assign them to the objects in the ejbLoad()
which will be called by the container when it instatiates a bean object.
Similarly in the ejbStore() the container saves the object values back the
the persistance storage. ejbLoad and ejbStore are callback methods and
can be only invoked by the container. Apart from this, when you use Entity
beans you dont need to worry about database transaction handling,
database connection pooling etc. which are taken care by the ejb
container. But in case of JDBC you have to explicitly do the above features.
what suresh told is exactly perfect. ofcourse, this comes under the
database transations, but i want to add this. the great thing about the
entity beans of container managed, whenever the connection is failed
during the transaction processing, the database consistancy is mantained
automatically. the container writes the data stored at persistant storage of
the entity beans to the database again to provide the database
consistancy. where as in jdbc api, we, developers has to do manually.

No comments: