public abstract class BaseObject
{
public void commitTransaction(Connection pConn)
{
Statement stmt = pConn.createStatement();
String query = getInsertSQLStatement(); // only defined in subclasses
stmt.executeQuery(query);
}
private Connection getDBConnection()
{
// get DB connection
}
public abstract String getInsertSQLStatement();
public abstract String getDeleteSQLStatement();
public abstract String getUpdateSQLStatement();
}
public class MySessionBeanEJB implements SessionBean
{
public void commitTransaction(BaseObject pObject)
{
Connection conn = getDBConnection();
pObject.commitTransaction(conn);
}
private Connection getDBConnection()
{
// get DB connection
}
public class Transaction extends BaseObject
{
private String name;
private String address;
private String city;
public Transaction()
{
}
public setName(String pName)
{
name = pName;
}
public setAddress(String pAddress)
{
address = pAddress;
}
public setCity(String pCity)
{
city = pCity;
}
public String getInsertSQLStatement()
{
return "INSERT INTO Company (" + name + "," + address + "," + city + ") VALUES(?,?,?)";
}
public String getInsertSQLStatement()
{
return "UPDATE Company SET name = ? SET address = ? SET city = ? WHERE companyID = ?";
}
public String getInsertSQLStatement()
{
return "DELETE FROM Company WHERE CompanyID = ? ";
}
}
public class JavaBean
{
public void processData(HttpRequest request, HttpResponse response)
{
String name = request.getParameter("name");
String address = request.getParameter("address");
String city = request.getParameter("city");
Transaction newTransaction = new Transaction();
newTransaction.setName(name);
newTransaction.setAddress(address);
newTransaction.setCity(city);
Context myContext = getInitialContext(getContextFlag());
MySessionBeanHome home = myContext.lookup(pJNDIName);
MySessionBeanRemote remoteEJB = home.create();
remoteEJB.commitTransaction(newTransaction);
}
}
public class ControllerServlet
{
public void doPost(request, response)
{
String command = request.getParameter("command");
if (command != null)
{
// Get helper class name to process the page
String className = request.getParameter("action");
Class c = Class.forName(className);
Object instance = c.newInstance();
instance.processData(request, response);
}
}
}
Transaction.jsp
{
form method="post" name="ControllerServlet" action="JavaBean"
}