Springにおけるデータベースへのアクセス方法

一般に、Javaにおけるデータベース(RDBMS)へのアクセスには(代表的なものとして)下記の方法が使われます。

  • JDBC
  • HibernateやTopLink等のORMライブラリ
  • Java Persistence API (JPA)
  • Java Data Object (JDO)

JDBCはデータベースに接続し、SQLによるクエリを実行するためのAPIです。SQLは自分で書かなければいけません。

HibernaeやTopLink等のORMライブラリを利用すると、SQLを(あまり)意識することなくJavaのインスタンスをデータベースに保存できるようになります。ライブラリがSQLを自動生成・実行してくれるわけです。

JPAとJDOは「仕様」のため、様々な実装が存在します。JPAはRDBMSへの操作を抽象化するAPIです。HibernaeやTopLinkもJPAの実装として利用することができます。JDOは永続化そのものを抽象化するAPIで、RDMBS以外のデータベースも対象としています。

Springでは、これらを直接使うのではなく(直接使うこともできますが)、利用をサポートする仕組みが用意されています。例えば、JDBCの場合には、Spring Framework JDBCを使うことで、データベースの接続やトランザクション等を簡単に扱うことができます。
JPAを使う場合には、Spring Dataに含まれるプロジェクトであるSpring Data JPAを利用することで、ページング等を簡単に実現することができます。