Spring Framework Tutorial
Software Setup and Configuration (STS/Eclipse/IntelliJ)
Core Spring
Spring Annotations
Spring Data
Spring JDBC
Spring Security
Spring provides a suite of data access technologies to interact with relational databases. Let's differentiate between three of its primary offerings: Spring DAO, Spring ORM, and Spring JDBC.
Spring DAO (Data Access Object):
Spring ORM:
Spring JDBC (Java DataBase Connectivity):
JdbcTemplate
that handle resource creation, querying, and cleanup.Spring DAO: Provides an abstraction for data access exception handling, not tied to any specific data access technology.
Spring ORM: Provides integration and support for popular ORM frameworks, allowing for a consistent transaction and exception handling mechanism.
Spring JDBC: A JDBC abstraction tool to simplify the traditional JDBC code, providing utilities and templates for querying and updating the database.
In modern Spring applications, developers can mix and match these components based on the application's requirements. For example, you might use Spring ORM for most data access but use Spring JDBC for some specific use cases that require fine-tuned SQL.
Implementing Data Access Layer with Spring DAO:
@Repository public class MyEntityDAO { @Autowired private JdbcTemplate jdbcTemplate; public MyEntity findById(Long id) { // JDBC query to retrieve entity by ID } // Other data access methods... }
Configuring Data Sources with Spring JDBC and ORM:
@Configuration public class DataSourceConfig { @Bean public DataSource dataSource() { // DataSource configuration details } }
Working with Transactions in Spring DAO and Spring ORM:
@Service public class MyService { @Autowired private MyEntityDAO myEntityDAO; @Transactional public void performTransactionalOperation() { // Business logic involving DAO operations } }