In my department, entity beans are banned. I like to see session beans do DB access using the Data Access Object pattern. On the project I am working on, we have this: bean --> DAO object --> DB broker --> DB The DB Broker is a singleton which actually handles DB access. Also, we use prepared statements stored in external files and cached in a HashMap on startup. It all works quite well.