JDBC is a standard data-access protocol that is typically used to access relational databases. A significant advantage of JDBC is its standardized API, which allows for portability of Java-based data-accessing applications. JDBC is considered an integral part of both standard Java (J2SE) and enterprise Java (J2EE) and has been around since Java's early days.
The many positive aspects of JDBC have allowed it to play a significant role in many J2SE and J2EE applications. However, there are some characteristics that make it more difficult to use than we might desire. These tedious, and sometimes frustrating, characteristics of JDBC have led to the creation of publicly available JDBC abstraction frameworks (such as SQLExecutor and Apache Jakarta Commons DBUtils) as well as many more times that number of homegrown JDBC application frameworks. One publicly available JDBC abstraction framework is Spring Framework's JDBC abstraction.
The article continues at http://www.oracle.com/technology/pub/articles/marx_spring.html