I access the DB from services (at least when using
Java) :p
It's often more instructive to make your own decisions, and once you realize your mistakes, go back in and fix them. Repeat these steps frequently, and eventually you come to understand whatever frameworks and methodologies you're using.
For example, you might start out by using plain servlets and JSPs. Once you have some application functionality you're happy with, you might ask "Here's an example servlet in my forum application; how can I make it better?" Then somebody would say "Oh, use services to handle the database access." So you move your database code into services, and ask "How can I make this better?" Somebody might say "If you inject your services into your servlets it makes
testing much easier."
You reply "Testing?!" and create a suite of unit tests and begin injecting the services. Then somebody says "Why aren't you using Spring to do your database work? It's so much easier." Then you use Spring to handle your
JDBC (if you're not using an ORM). Along the way to discover that Spring can be used to handle some other functionality you're looking at, including replacing servlets with Spring MVC. Or you might decide that something like Wicket fits the way you think better--or
Struts, or Frontman, or Tapestry, or Stripes, or
JSF (ew!), or whatever, and re-implement servlets using your new favorite technology.
This goes on forever.