Technically, an application can use JDBC to connect directly to a database server, or it can use an "intermediary" in-between. These are the commonly used JDBC configurations:
2 Tier: Application loads a JDBC driver and connects to the database (no intermediary)
3 Tier: The application communicates with an intermediary (a Servlet, a JSP, an EJB, or a CORBA service). The intermediary uses JDBC (or embedded SQL statements) to connect to the database
1 Tier: That's a special case: The application and the database all run in the *same JVM*. That's interesting only if you develop embedded applications or a server product (e.g., a JMS server).
This was first published in March 2002