The API documentation for JDBC is very complete: http://docs.oracle.com/javase/7/docs/api/java/sql/package-summary.html
The API documentation for the ResultSet
interface (http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html), for the
PreparedStatement
class (http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html) and the
Connection
class (http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html) is particularly relevant.
The data mapper pattern is described extensively in Martin Fowler's Patterns of Enterprise Application Architecture. A brief description is also available on his website (http://martinfowler.com/eaaCatalog/dataMapper.html).
For an introduction to SQL, I suggest Learning SQL by Alan Beaulieu (O'Reilly).
For another discussion of type classes, read http://danielwestheide.com/blog/2013/02/06/the-neophytes-guide-to-scala-part-12-type-classes.html.
This post describes how some common object-oriented design patterns can be reimplemented more elegantly in Scala using type classes:
This post by Martin Odersky details the Pimp my Library pattern: