Re: struts using jdbc
On Apr 5, 6:36 am, Lew <l...@nospam.lewscanon.com> wrote:
ros wrote:
I am new to Struts. Have worked on a few tutorials and have attempted
a few simple exercises. Currently I am working on an exercise where I
have to access a MySQL database from the main jsp page ( which asks
the user for name) and display the data related to the user ...
In Struts, the way you would generally do this would be:
1. JSP submits to a Struts action, passing validated username via form
2. Struts action assembles data from the database based on the username
3. Data put into request scope attribute - request.setAttribute(...)
4. Action forwards to the JSP that will display the data
5. JSP "view" displays the data put in the request
....
Write a class, or package of classes, that contain the JDBC calls ...
....
In your Action class create a data access object (DAO) of this class or one of
the package types, (Interfaces are best for the compile-time type.) Use that
instance to execute your data operations.
But then, for anything more than a trivial application, you should think
about separating your data access code from your action classes.
Having data access code in actions couples your choice of
view/controller framework, i.e. Struts, to your choice of data access,
i.e. JDBC/DAO. Delegating the data access to another layer of code makes
it easier to change your DAO implementation, e.g. to Hibernate, later on
and promotes re-use of your data access code.
So, in your action classes, instead of code like this ...
try {
MyDAO dao = new MyDAO(connection);
Person p = dao.fetch(id);
...
}
catch (java.sql.SQLException e) {
...
}
.... you have code more like this.
try {
Person p = MyDelegate.getPerson(id);
...
}
catch (com.mycompany.NotFoundException e) {
...
}
.... which is business-focussed rather than data access focussed and
doesn't change if you move to something like Hibernate or EJB.
--
Regards,
Richard