Treat SQL and connections as an edge: parameterize queries and return plain data.
JDBC interop is a great example of “pure core, impure shell” design:
For Java engineers, the key is to keep database work localized:
This section focuses on patterns that keep persistence code small and easy to test.