libro
www.tuyano.com
初心者のためのSpring Framework入門

Spring Data JPAの利用 (1/7)

作成:2015-07-25 08:22
更新:2015-07-25 08:22

■Spring Data JPAとpom.xmlについて

データベース関連は、各種のライブラリやフレームワークがもっとも多く用意されている分野でしょう。HibernateなどのORM(Object Relational Mapping)は、SQLなどを使うデータベースのアクセスと、JavaのObjectiveなコードとの整合性をとるための技術として広く使われています。

そうしたORM関連の技術の中でも、Javaの純正技術として浸透しているのが「JPA(Java Persistence API)」でしょう。まぁ、JPA自体は、ORMのための技術というより、SQLをJavaなりに使いやすくするものという感じですが、データベースとJavaオブジェクトの橋渡しをするための基本的な技術として多くのフレームワークでも使われています。

Spring Frameworkでも、JPAを利用してデータベースアクセスを行う「Spring Data JPA」というライブラリが用意されています。これは「Spring Data」と呼ばれるデータベースアクセス関連ライブラリの一つです。この他に、非SQLであるMongoDBを利用する「Spring Data MongoDB」や、Hadoop利用のための「Spring Data Hadoop」などといったものが用意されています。Spring Data JPAは、一般的なSQLによるリレーショナルデータベース全般を利用するためのもので、Spring Dataの基本となるライブラリといっていいでしょう。

では、このSpring Data JPAを利用してみることにしましょう。まずは、pom.xmlへのライブラリの追加です。下のリスト欄のようにソースコードを書き換えて下さい。例によって、Spring Framework 4.1.7に合わせたバージョン構成になっています。

今回は、計3つの<dependency>タグを新たに追加してあります。それぞれ簡単に説明しておきましょう。

●H2
グループIDに「com.h2database」、アーティファクトIDに「h2」を指定してあります。H2は、JavaのSQLデータベースエンジンです。直接データベースファイルにアクセスしてデータを保存できます。データベースというとMySQLやPostgreSQLといったものが思い浮かぶでしょうが、Javaのライブラリとして実装されているH2のようなデータベースエンジンは、データベースサーバーのセットアップなど面倒なことをする必要がなく、気軽に利用できるので、学習用としては最適です。そこで今回は、H2をデータベースに利用してSpring Data JPAを使うことにします。

●Hibernate EntityManager
JPAでは、「エンティティ」と呼ばれる形でデータベースのデータをオブジェクト化します。このエンティティの管理を行うのが、エンティティマネージャです。これはさまざまなものが出回っていて、自分で使いやすいものを選んで組み込み利用できるようになっています。今回は、Hibernateが作成しているエンティティマネージャを使っています。グループID「org.hibernate」、アーティファクトID「hibernate-entitymanager」で指定します。

●Spring Data JPA
これが、Spring Data JPAの本体ライブラリです。グループIDに「org.springframework.data」、アーティファクトIDに「spring-data-jpa」をそれぞれ指定します。


――以上の3つのライブラリをpom.xmlに追記することで、Spring Data JPAが使えるようになります。最初のH2は、他のデータベースサーバーを利用する場合はもちろん不要です。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<project 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>org.springframework.samples</groupId>
    <artifactId>MySpringApp</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <java.version>1.6</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>

        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.1.7.RELEASE</version>
        </dependency>

        <!-- Database (H2) -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.187</version>
        </dependency>

        <!-- JPA Provider (Hibernate) -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.10.Final</version>
        </dependency>

        <!-- Spring Data JPA -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>1.8.1.RELEASE</version>
        </dependency>

    </dependencies>
</project>
※関連コンテンツ

「初心者のためのSpring Framework入門」に戻る