libro
www.tuyano.com
初心者のためのJava Persistence API入門

JPA利用の準備 (1/5)

作成:2017-10-28 08:44
更新:2017-10-28 08:44

■Java Persistence APIとは?

JPA(Java Persistence API)は、リレーショナルデータベースへのアクセスを行うためのフレームワークです。データベースアクセスというと、Java SEでは長らくJDBCが一般的でした。今でも使っている人はけっこういるかもしれませんね。

JPAは、データベースアクセスというより、正確には「データの永続化」の機能を提供します。永続化っていうのは、つまり「プログラムを終了した後もずっとデータが残っている」ということですね。データベースにデータを保存し、それを必要に応じて取り出すことでそれを可能にしているわけです。

じゃあ、データベースアクセスでいいじゃないか。なんで永続化なんていうんだ?と思った人。それは、実際にJPAを使ってみるとよくわかります。JPAは、「データのオブジェクトを保存するとそのまま保存される」のです。

このとき、「データベースにアクセスして保存のクエリーを実行する」なんてことはまったく意識されません。また、アクセスするSQLのクエリー文をテキストで組み立てて……なんてこともまずしません。保存するオブジェクトから1つ1つ値を取り出して整形して……なんてこともしません。ただ、「保存したいオブジェクトをそのまま保存する。以上!」なのです。

JPAの裏側では、データベースへのアクセスが行われています。が、表側(私たちが実際に操作する側)では、ただ「Javaのオブジェクトを保存したり取り出したりしているだけ」です。データベースにSQLでアクセスしている、なんてことは意識されないのです。

どこかで「ORM」という言葉を耳にしたことがあるでしょう。ORMとは、「Object-relational Mapping」の略で、Javaのオブジェクトとリレーショナルデータベースの間をマッピングする仕組みのことです。Javaオブジェクトとデータベースレコードの間をマッピングし、シームレスにやり取りできる仕組みを提供するのがORMです。

JPAは、正確にはORMとは少し違いますが、ORMのようにJavaのオブジェクトからシームレスにデータベースレコードに変換し処理をする、ということを行なってくれます。JPAを利用すれば、データベース利用の開発でも、データベース内の処理などを考える必要はなくなります。ただ、データとなるクラスを定義し、そのメソッドを呼び出すだけで、内部で必要に応じてデータベースにアクセスが行われるのです。

また、アクセスのためには「JPQL」という専用の簡易言語が用意されています。これはSQLに似たものです。が、SQLのようにデータベースごとに異なる方言があるものと違い、ただ1つの記述形式でさまざまなデータベースに同じようにアクセスします。データベースを変更したい場合でも、そのための設定を書き換えるだけです。具体的なコードは一切書き換える必要がありません。

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

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

※関連コンテンツ

「初心者のためのJava Persistence API入門」に戻る