The system cannot (as yet) be tied to a particular application server, so a pure, non-proprietory J2EE solution is needed.
As for the DAO pattern, I can see how it would help abstract the underlying database, but I don't think that actually addresses the problem I'm having.
Basically, I need to issue complex read queries separately from update (create, update, delete) queries. I'm wondering whether to do these in a Session bean using JDBC, or perhaps using JSTL from the JSP page itself.