Matt Raible has a good
presentation on this topic (
slides here). The slides have pros and cons for many frameworks.
His advice boils down to: choose 2-3 frameworks that best fits your requirements and prototype. No framework is a silver bullet, but if you have some features you can't do without, that will drive the framework you use.
Databases seem to be chosen more along personal preference rather than features, as most all major DB's have very similar feature sets (as far as applications programming are concerned). There may be other features that drive your choice, like MS SQL's Data Transfer Services, or Oracle's tight Java integration, or the fact you can embed Apache Derby inside your app, or the company you work for has always used Brand X.
[ May 15, 2008: Message edited by: Joe Ess ]