NetBeansとMavenでJPAプロジェクトの作成~エンティティ自動生成まで
さて来週日曜日、JJUG CCCがあります。
「JPAの同時実行制御とロック」というテーマでお話しするのですが、それに先立って開発環境の作り方を説明したいと思います。
実は、このとき開発環境はEclipse+Mavenだったんですが、改めてやってみるとこまごまと面倒なところがありまして・・・(^^;)
DBはMySQL 5.6、JPA実装はEclipseLink 2.5.2-M1です。
JDK 8のインストール方法は省略します。
NetBeans 8.0のインストールは簡単です。
https://netbeans.org/downloads/?pagelang=ja
で、プラットフォームは「OSに依存しないZIP」、ダウンロードバンドルは「すべて」を選択してZIPをダウンロードし、展開するだけです。
展開後、netbeans/etcフォルダ内のnetbeans.confを編集して、
下記のようにnetbeans_jdkhomeにJDKのインストールフォルダを指定します。
これが完了したら、NetBeansを起動します。
僕の場合はWindows 7の64bit版なので、netbeans64.exeから起動します。
NetBeansが起動しました。
これからJPAプロジェクトを作ります。
画面左側の「プロジェクト」内で右クリックし、「新規プロジェクト」を選択します。
カテゴリで「Maven」、プロジェクトで「Javaアプリケーション」を選択し、「次へ」をクリックします。
プロジェクト名などを適当に入力し、「終了」をクリックします。
プロジェクトが作成されました。
さて、ここからJPAを使う準備をします。
Maven依存関係に、MySQLのJDBCドライバーとEclipseLinkを追加します。
pom.xmlを下記のように編集します。
編集してCtrl+Sなどで保存すると、各種JARが依存性に追加されます。
さて、あとはJPAで使うエンティティクラスを自動生成します。
プロジェクトを右クリックして「新規」-「データベースからのエンティティ・クラス」を選択します。
データベース接続で「データベースの新規接続」を選択します。
ドライバで「MySQL」を選択したら、ドライバ・ファイルにMySQLのJDBCドライバJARファイルが表示されますので、「次へ」をクリックします。
JDBCのもろもろの設定を入力したら、「接続のテスト」をクリックします。
「接続に成功しました」と表示されたら、正しく設定がされています。
その後、「次へ」をクリックします。
スキーマの選択画面が出ますが、僕の環境の場合は、そのまま「次へ」をクリックします。
最後に、この接続に名前を付けられますので、わかりやすい名前を付けておきましょう。そして「終了」をクリックします。
さて、これでようやっと、エンティティの自動生成をするための準備が整いました。
データベース接続で、先ほど作った「MySQL_emp」を選択します。
そうすると、使用可能な表の一覧が出ますので、エンティティを作成したい表を選択して「追加」をクリックします。
今回はemp2という表1つだけを追加します。
追加が終わったら、「次」をクリックします。
いろいろとオプションを選べますが、今回は「持続性ユニットの作成」のみにチェックを入れて「終了」をクリックします。
そうすると、エンティティクラスとともに、src/main/resources/META-INFにpersistence.xml(JPAの設定ファイル)が作成されます。
以上で、JPAを使うための下準備は終了です。
JJUG CCCの内容や、Java EE 7研修の開発ではEclipseを使ったので、EclipseでのJPAプロジェクトの作成方法を書こうと何度も試したのですが、改めてやってみると結構めんどくさいです。
僕のやり方が悪いのかもしれませんが、MevenプロジェクトにするとJPAエンティティ自動生成ができないし、JPAプロジェクトで使うとMaven使えないし・・・。
研修もNetBeansでやろうかな。