Performance isn't the biggest issue here. Being as each alternative presumably serves the same purpse I would code to an interface (i.e. methods like getMyData()) and code the easiest most maintainable solution (or a simplified version for test purposes). Test this for performance and change it if it doesn't meet your performance needs. Being as you are coding to an interface it would be easy to swap implementations later if you need to.
An easy way to monitor your interface is to use JAMon. You simply have to add the following line of code and all method calls against your interface will be timed.
If you give a better feel for what you are trying to do (such as how many queries will be issued, how big are the tables etc that would be helpful as all these factors and more need to be known before answering the question). [ January 03, 2007: Message edited by: steve souza ]