Persistence API Overview | Persistence Query Example | Persistence Example with Query and Sort | Developing with Eclipse | Developing with JBuilder
This example uses the Persistence API to create, store and retrieve objects.
The objects can have a 1:1 relation. The application is developed as servlet
that loads a bean with the retrieved data of the Persistence API and calls the
JSP that displays it.
The example defines two objects that have a 1:1 relation. As typical 1:1 relation we haven chosen a "car" : "license"(number) scenario. The example demonstrates how the Persistence API has to be set up and how to read and write data. The MDK provides a template for this example. Click here to Download template.
The example uses following packages:
import com.sap.ip.me.api.conf.Configuration;
import com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet;
import com.sap.ip.me.api.services.Log;
import com.sap.ip.me.api.persist.*
Java - default package |
Description |
PersistenceExample.java | Implementation of the servlet. |
Constants.java | Interface defining all text strings used in PersistenceExample.java. |
Java - datafactory package |
Description |
Car.java | Implementation of the car object. |
License.java | Implementation of the license object. |
ExamplePackagePersistenceMaster.java | Implementation of the PackagePersistentMaster to define the data structure. |
ReadWriteEntities.java | Methods to add, read and delete entities. |
Java - bean package |
Description |
TableViewBean.java | Implementation of the bean that is loaded by the servlet and read by the JSP. |
JSP |
Description |
menu.jsp | Initial JSP to display the persisted data. |
add.jsp | JSP to add an entry. |
delete.jsp | JSP to delete an entry. It serves as plane information page, in case the user clicks the DELETE button in the menu.jsp, without a selected row. |
As mentioned above, we create "Car" and "License" objects. One Car can have one License (number). In this implementation the "Car" and "License" must be unique. Whenever you add an entry that already exists, it replaces the existing entry with the new data.
The user interface of the initial screen has a display area and three buttons:
We create a class PersistenceExample that extends the class AbstractMEHttpServlet and implements Constants. Constants is an interface in which we define all relevant variables for the application. All variables used in Constants are written in uppercase characters. So anytime you see an uppercase variable used in class PersistenceExample you will find the definition in interface Constants.
The class PersistenceExample extends AbstractMEHttpServlet which extends javax.servlet.http.HttpServlet itself. The application is separated into the default package (containing all classes necessary to interact with the user), the datafactory (containing all classes necessary to manipulate the persisted data) and bean (which contains the bean which serves as data bag between the servlet and the JSP).
default package
Now comes the section were we check which event occurred. The events come from:
datafactory
package
to add the entries. If the user adds a car and a license number, both object
will be combined other car or license number will be stored independently.
The next methods called are:
datafactory
package. The readEntity method returns
an array with the entries and the loadBean method transfers this
data into the bean. The boolean variable listmode controls if all
entries or only "Car" objects are displayed.Now the JSP is called and the data is displayed on your web browser.
datafactory package
all
is set to true,
all "Car" and "License" objects will be read. Otherwise
only the "Car" objects.The bean serves as data bag. It has a string, a vector and two variables that define the length and width of the string array. All variables have get and set methods.
menu.jsp
The JSP gets the bean from the session context with the useBean command.
It displays the the title and then uses the HTML grid (<td>, <tr>
...) to format the data in the bean. It uses a table view to display the persisted
data. The table view has a check box in the first row to mark entries to be deleted.
The JSP has three buttons to add and delete entries and to switch between full
list or short list.
add.jsp
JSP with two input fields (to enter a car model and a license number) and two
buttons ("Add" to add the entry, "Cancel" to go back to
menu.jsp without adding the entry).
delete.jsp
If no entry is activated in menu.jsp and the user clicks on the "Delete"
button, an information message is displayed to select an entry first before
pressing the "Delete" button.