This might be just one of those "Any comments" as I am still learning this stuff also.
A couple things about database connections.
1. JBoss AS and Portal uses Hibernate for there connections and it looks like this technology is making good progress in the development world. Hibernate and other similar technologies (toplink) do the db connections for you. They set these connections into a pool and hand them out to the portlet as needed. Once the request is finished, it is returned to the pool. You should be closing the connection as soon load the data (a few milliseconds).
2. I don't know how customized each users portal will be but you can increase efficiency by caching the data. You should be using enity beans to load the items from the database. It you make the bean global you should able to share it across multiple users.
Hope this puts you in the right direction.