The types of transactions supported by Spring MVC are programmatic and declarative. Programmatic transaction management involves managing transactions by writing programs or code. As we write the code, it is flexible, and we can change it according to our needs. However, it isn't easy to maintain. Declarative transaction management isolates transaction management from business logic. It makes use of XML-based annotations and configurations. Declarative is preferred because it is consistent and lightweight. It defines roll-back rules and can be applied to classes. With minimal configuration changes, it works well with JDBC, JDO, Hibernate, etc.