Difference Between Spring DAO vs Spring ORM vs Spring JDBC


The given three terms Spring DAO, Spring ORM and Spring JDBC, are related to Data Access in Spring Framework. This framework was developed in June 2003 by Rod Johnson and with its release, it became very famous among Java developers because of its comprehensive set of tools and features for building enterprise applications. Although these terms serve the same purpose there exist a few distinctions between them. In this article, we are going to discuss the difference between Spring DAO, Spring ORM and Spring JDBC.

Spring DAO vs Spring ORM vs Spring JDBC

In this section, we will introduce the Spring DAO, Spring ORM and Spring JDBC and later, we will create a table describing the differences between these three technologies.

Spring JDBC

It is a module that provides functionality to use the JDBC API with Spring. The full form of JDBC is Java Database Connectivity. It is an application programming interface (API) that allows Java applications to interact with relational databases using SQL statements. We can integrate Spring JDBC with other Spring modules, such as transaction management, data access objects (DAO), and object-relational mapping (ORM).

Spring JDBC provides a template-based approach that reduces the amount of boilerplate code required to use JDBC API, such as opening and closing connections, statements and result sets, handling exceptions, etc. The term boilerplate code refers to a pile of code blocks with a fixed pattern. There are several approaches to form JDBC database access including JdbcTemplate, SimpleJdbcInsert, SimpleJdbcCall and RDBMS Object approach.

Spring DAO

It is a convention that stands for Spring Data Access Object and instructs us on how to write DAO. Like Spring JDBC, it does not provide any template or interface for data access. It allows working with data access technologies such as JDBC, Hibernate, and JDO with ease. We must annotate the DAO with @Repository to translate exceptions related to JDBC, Hibernate, and JDO into DataAccessException subclass.

To work with these underlying technologies Spring provides the following abstract DAO classes that we can extend in our program −

  • JdbcDaoSupport

  • HibernateDaoSupport

  • JdoDaoSupport

  • JpaDaoSupport

Spring ORM

We can also integrate the Spring Framework with various ORM tools such as Hibernate, TopLink, Java Persistence API (JPA), Java Data Objects (JDO) and iBATIS SQL Maps for the purpose of resource management and DAO implementations. Here, the term ORM stands for Object Relational Mapping.

Here is a list of features provided by Spring ORM −

  • The Spring IoC is a mechanism to achieve loose coupling between an Object's dependencies. It can be applied to the instances of Hibernate and JDBC to swap their implementations and configuration locations which help in easier testing of applications.

  • Spring can convert the exceptions from other ORM tools into a common runtime exception, i.e. DataAccessException.

  • It offers efficient, easy, and safe handling of resources.

  • It also provides an integrated transaction management system.

Difference between Spring DAO, Spring ORM and Spring JDBC

The following table concludes the difference between Spring DAO, Spring ORM and Spring JDBC from the above discussion −

Spring DAO

Spring ORM

Spring JDBC

It allows us to work with data access technologies.

It allows the integration of ORM tools in Spring.

It is built on top of JDBC.

Its implementation and maintenance are a little bit complex.

Its implementation and maintenance are also complex.

Its implementation and maintenance are comparatively simpler than other technologies.

The Spring DAO does not provide any templates for data access.

It provides templates for data access through ORM tools.

It also provides a template-based approach.

Conclusion

In this article, we have learned the distinction between Spring DAO, Spring ORM and Spring JDBC. These are ways of accessing data in Spring Framework. Both Spring DAO and Spring ORM can be integrated with multiple technologies such as Hibernate, Java Persistence API (JPA), and Java Data Objects (JDO). But, the Spring JDBC works with plain JDBC.

Updated on: 17-Aug-2023

353 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements