在前面的章节中,我们了解了 Spring 的核心特性,例如 依赖注入 (DI) 及其配置。我们还看到了如何借助 Spring 面向方面编程 (AOP) 实现可重用代码。我们了解了如何在 Spring Model-View-Controller (MVC) 的帮助下开发松散耦合的 Web 应用程序,以及如何优化 Spring MVC 实现以取得更好的结果使用 asynchronous 特性、多线程和身份验证缓存。
在本章中,我们将学习与 Spring Framework 的数据库交互。数据库交互是应用程序性能的最大瓶颈。 Spring Framework 直接支持所有主要的数据访问技术,例如 Java 数据库连接 (JDBC)、任何对象-关系映射 (ORM ) 框架(例如 Hibernate)、Java Persistence API (JPA) 等。我们可以选择任何一种数据访问技术来持久化我们的应用程序数据。在这里,我们将探索与 Spring JDBC 的数据库交互。我们还将了解 Spring JDBC 的常见性能陷阱和数据库设计的最佳实践。然后我们将看看 Spring 事务管理和最佳连接池配置。
本章将涵盖以下主题:
- Spring JDBC configuration
- Database design for optimal performance
- Transaction management
- Declarative ACID using @Transactional
- Optimal isolation levels
- Optimal fetch size
- Optimal connection pooling configuration
- Tomcat JDBC connection pool versus HikariCP
- Database design best practices