SpringでMySQLに接続する(JPA)

SpringでMySQLに接続する(JPA)

SpringでMySQLに接続してみます。

pom.xmlに以下を追加します。

pom.xmlのpropertiesタグ内に以下を追加します。

persistence.xmlを作成します。JPAによる永続化のために必要な情報を記述しているファイルです。

「src/main/resources/META-INF」配下に作成します。

persistence-unitタグのname属性で指定した名前はプログラムで使用します。

persistence.xmlが作成できたらエンティティクラスを作成します。

@Entityアノテーションでエンティティクラスであることを定義しています。

lombokを使用して@Dataアノテーションでセッター、ゲッターを省略しています。

@Tableアノテーションのname属性でテーブル名を指定します。

あとは省略します。次にData Access Object(DAO)を作成します。DAOでデータアクセスします。

インタフェースを作成します。

次にインタフェースをインプリメントしたDAOクラスを作成します。(インタフェースは必ずしも必要ではありません)

getAllメソッドでは全件セレクトし、Listを返しています。

addではmydataをインサートしています。persistメソッドでエンティティを保存するのでインサートが実行され、commitで確定されます。

次にコントローラ(リクエストハンドラ)を作成します。

初期表示時がhello1メソッドが実行され、送信ボタン押下時にhello2メソッドが実行されます。

最後にdbHello.jspです。

これでJPAを使用してデータベース(MySQL)にアクセスしています。

@Valueアノテーション

@Dataに対して@Valueアノテーションと言うのがあります。

@Valueは@Dataをイミュータブルにします。具体的には@Valueにすると全てのフィールドはprivate finalになります。その為、@Setterをクラスもしくはフィールドにつけるとエラーとなります。finalなのでセッターメソッドが作成できなくなります。

JPAについては「JPQL入門」参照ください。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA