2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Play Framework勉強めも データベースについて①

Last updated at Posted at 2018-03-24

(参考)勉強してる書籍
https://www.amazon.co.jp/Play-Framework-2%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80-Java%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%ABWeb%E9%96%8B%E7%99%BA-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798133922/ref=cm_cr_srp_d_product_top?ie=UTF8

#データベースについて
そもそもデータベースとは?は以下参照。
https://www.sejuku.net/blog/8763#i-4
アプリケーションを作成するに当たってデータベースの設計はかなり重要。

##H2について
プレイフレームワークでは、H2(H2 Data Base Engine)と呼ばれるデータベースプログラムが組み込まれている。

#データベースを使用するための設定について
##application.confの設定方法
まずは、アプリケーションがDBを使用出来るようにする。設定方法は以下の通り。

設定項目=値

###application.confに追記するコード
・#から始まっているコードはコメント
・以下のコードを追加する

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
ebean.default="models.*"

###設定項目の解説
追加してない部分も含めて解説。

db.default.driver

→データベースアクセスのために、利用するドライバを指定するものです。ここでは一般的にJavaのクラスを指定する。

db.default.url

→データベースのアクセス先を示すURLを指定する。「jdbc.〇〇」という形で指定する。

db.default.user

→H2では使用しないが、クライアント・サーバ方式のデータベース利用の際用いる。利用者名を記載する。

db.default.password

→H2では使用しないが、クライアント・サーバ方式のデータベース利用の際用いる。パスワードを記載する。

ebean.default

→O/Rマッパーに関する内容を記述する。

##データベースを呼び出すための設定方法
データベースの呼び出し方法は大きく2パターンある。
・ドライバファイルに記述する方法
→データベースにアクセスするファイル
http://www.atmarkit.co.jp/ait/articles/0106/26/news001.html

・ビルドツールを使用する方法
→ドライバへのアクセスも含め、自動でアプリケーションが動く状態にするツール
(ビルドとは)https://qiita.com/Mura-Mi/items/225825cc3715dc04d923

プレイフレームワークは「sbt」というビルドツールを使って、データベースのアクセスに必要なツールをダウンロードする。

##設定追記方法
以下の様に、アプリケーションで使用している項目を、seqの後でカンマで区切って記載する。

libraryDependencies ++= Seq(項目1,項目2・・・・・)

###設定追記後のsbtのコードの内容

name := "PlayApp"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache
)     

play.Project.playJavaSettings

#データベースの作成について
プレイアプリケーションでは、Modelクラスに具体的なテーブルの内容を定義する事で
実行時に自動的にテーブルを用意する事が出来る。

##Modelクラスの作り方
appというフォルダ内に、modelsというフォルダを作成する。
フォルダ内にMessage.javaというファイルを作成する。

###記載方法

public class クラス名 extends Model{
//保管するフィールドの定義
}

###コード全体

package models;

import java.util.Date;

import javax.persistence.*;
import javax.validation.*;

import play.data.validation.*;
import play.db.ebean.*;

@Entity//①
public class Message extends Model{//②

	@ID//③
	public Long id;
	public String name;
	public String mail;
	public String message;
	public Date postdate;
}

①エンティティクラスである事を記述する。
(エンティティクラスについて参考)http://itdoc.hitachi.co.jp/manuals/link/cosmi_v0870/APKC/EU070254.HTM
②Modelというクラスを継承する事で、データベースとしての機能を保有する事が出来る。
@IDと書かれた下にあるフィールドがプライマリキーとして扱われる。

##その他クラスの変更
Application.java

package controllers;

import play.*;
import play.mvc.*;

import views.html.*;

public class Application extends Controller {
    //ルートにアクセスした際のAction
    public static Result index(){
      return ok(index.render("データベースのサンプル"));
    }
}

index.scala.html

@(msg:String)


@main("Sample page") {
  <h1>Hello!</h1>
  <p>@msg</p>
}

##表示結果
スクリーンショット 2018-03-24 23.25.54.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?