『入門向け』Java開発環境の構築とかんたんなコードの書き方と実行方法 (前編)
はじめに
この記事は、Javaを勉強するための開発環境を構築したい、その開発環境を使ってソースコードを書いて実行する方法を知りたい、といったひと向けの入門記事になります。 前編のこの記事では、Windows 10とJava 11を使った開発環境の構築の手順、Javaプログラムの基本的な書き方と実行方法を説明します。 中編と後編は、Javaプログラムのもう少し踏み込んだコードの書き方について説明します。
開発環境の構築
Javaの開発ツールにはPleiades All in One Eclipse
というパッケージを利用します。このパッケージはEclipseをベースにしていてメニューやメッセージが日本語化されている他に、JavaやTomcatなどが同梱されているので、このパッケージだけで開発環境を構築できます。
Pleiades All in One Eclipseのダウンロード
Eclipse 日本語化 | MergeDoc Project にアクセスし、以下の手順でダウンロードします。
最新バージョンを利用したいので、Fig1の赤い枠線で囲った"Eclipse 2020"(2020年3月現在の最新)というボタンをクリックします。
Windowsであれば、Fig2の赤い枠線で囲ったWindows 64bit版のFull Editionをダウンロードするボタンをクリックします。
pleiades-2020-03-java-win-64bit-jre_20200322.zip
という名前(2020年3月現在)のzipファイルのダウンロードが始まります。
Pleiades All in One Eclipseのインストール
ダウンロードしたzipファイルを7-Zipなどのツールで展開します。まだこのツールをインストールしていなければ先にインストールしてください。
zipファイルを展開するとpleiades
というフォルダができるので、これを適当な場所へコピーします。
この記事では以下の場所へコピーしました。インストールはこれで完了です。
C:\dev\pleiades
このフォルダをWindowsエクスプローラで開くと、Fig3のようになっていると思います。
この中からさらにeclipse
というフォルダを開きます。Fig4のようなフォルダやファイルがあると思いますが、この中のeclipse.exe
(Windowsの設定によってはeclipse
とだけ表示されているかもしれません)を右クリックし、メニューから送る
→ デスクトップ(ショートカットを作成)
を選択します。
すると、デスクトップにeclipseのフォートカットが出来ていると思います。ショートカットファイルの名前に"ショートカット"と付いていると思いますが、名前は変更できるので任意の名前に変更してください。 このショートカットをダブルクリックするとEclipseが起動します。
ワークスペースの選択
Eclipseを起動するとワークスペースの場所を指定するEclipse IDEランチャー(Fig5)が表示されます。ワークスペースはソースコードを管理するフォルダで、基本的には画面の通りの場所で構いませんが、任意のフォルダを指定することもできます。任意のフォルダを指定したい場合は"参照(B)..."ボタンをクリックしてフォルダを選択します。
Fig5の通り../workspace
で起動ボタンを押すと、このワークスペースは以下の場所に作成されます。
C:\dev\pleiades\workspace
起動直後の画面
Fig6が起動直後の画面です。この画面の見方を簡単に説明します。 一番上がメニューバーで、その下のアイコンが並ぶバーをツールバーと呼びます。ツールバーによく使われる操作がアイコンで表示されています。 一番下がステータスバーです。ここにはEclipseが使用しているメモリ量やファイルの文字コードなどが表示されています。 一番面積の大きい中央右がエディター・ビューです。ここでファイル(ソースファイルやプロパティファイルなど)を編集します。 その他のビューは役割毎の内容が表示されます。例えば左端の"パッケージ・エクスプローラー"ビューはプロジェクトの構造を表示し、下の"問題"ビューはコンパイルエラーなどの情報を表示します。
レイアウトのカスタマイズ
ビューの位置を変更してレイアウトをカスタマイズすることができるので、その方法を簡単に説明します。(※レイアウトはこのままがいいという方は読み飛ばしてください。) ビューの移動は、移動させたいビューのタイトルバーをドラッグ(マウスの左ボタンを押しながら)して移動させたい場所でドロップ(マウスの左ボタンを離す)します。
まず、画面左下の”問題”というビューを画面右下へ移動させてみます。タイトルバーをドラッグしてFig7の黄色い枠線で囲ったあたりへドロップします。
Fig8がドロップ後の画面です。
次に"ランナー"や"アウトライン"があるビューを画面右端へ移動させてみます。タイトルバーをドラッグしてFig9の黄色い枠線で囲ったあたりへドロップします。
Fig10がドロップ後の画面です。
あとは各ビューの表示幅を調整します。ビューとビューの間の境界にマウスカーソルをあわせるとポインターが矢印マークになるので、その状態でマウスの左ボタンを押しながら左右、または上下に移動させるとビューの幅が変わります。
最終的にFig11のようなレイアウトに変えました。エディター・ビューは一番見ている時間が長いので中央に大きく表示するようにしました。
次によく使うビューをレイアウトに追加します。メニューバーのウィンドウ(W)
→ ビューの表示(V)
→ コンソール
を選択します。すると画面下のビューにコンソール
が追加されます。
以上がレイアウトのカスタマイズ方法です。どのようなレイアウトにするかは個人の好みなので自由に変えても問題ありませんが、パッケージ・エクスプローラー
とエディター
ビューは最低限残しておいてください。
使えるJavaのバージョンを確認
何種類かのJavaが利用できるようになっています。どのバージョンのJavaが用意されているかを確認するには、Eclipseのメニューバーのウィンドウ(W)
→ 設定(P)
をクリックします。
設定画面が表示されるので、左側のメニューのJava
→ インストール済みのJRE
をクリックします。Fig13の通りJava6、Java7、Java8、Java11、Java14が利用でき、デフォルトはJava11になっています。この設定はとくに変える必要はないのでこのままにしておきます。
使えるTomcatのバージョンを確認
この記事ではTomcatは利用しませんが、Javaで開発したWebアプリケーションを実行するTomcatというアプリケーションサーバーも同梱されています。
確認するには、Eclipseのメニューバーのウィンドウ(W)
→ 設定(P)
をクリックします。
設定画面が表示されるので、左側のメニューのサーバー
→ ランタイム環境
をクリックします。Fig14の通りTomat 6、Tomcat 7、Tomcat 8、Tomcat 9が利用できます。
Javaプログラムの書き方
ここからはJavaプログラムの書き方の説明になります。まず最初に行うのはJavaプロジェクトの作成です。
Java プロジェクトの作成
プロジェクトが1つも作成されていない状態ではパッケージ・エクスプローラー
のメニューからJava プロジェクトの作成
を選択するか、またはメニューバーのファイル(F)
→ 新規(N)
→ Java プロジェクト
を選択します。
Fig15の新規 Java プロジェクト
が開きますので、"プロジェクト名(P):"にstudy01project
と入力し、"完了"ボタンをクリックします。
Fig16の新規 module-info.java
が開くので、"作成"ボタンをクリックします。
Fig17がプロジェクトが作成された状態です。中央のエディタにmodule-info.java
が表示されていますが、いまは編集しないのでタブの×アイコンをクリックして閉じます。
パッケージの作成
Javaプロジェクトを作成したら、次はパッケージを作成します。
Fig18のsrc
を右クリックしメニューの新規(W)
→ パッケージ
を選択します。
Fig19の"名前(M):"にcom.example
と入力し、"完了"ボタンをクリックします。
Fig20がパッケージが作成された状態です。src
フォルダの下に作成したパッケージが表示されていることがわかります。
レッスン1
レッスン1では次のことを行います。
※レッスン1は中編の記事へ続きます。
レッスン1用のパッケージを作る
レッスン1用のパッケージを作成します。Fig21のcom.example
パッケージを右クリックし、新規(W)
→ パッケージ
を選択します。
Fig22の"名前(M):"にcom.example
と入力されているところに.lesson01
を追加して、"完了"ボタンをクリックします。
Fig23がパッケージが作成された状態です。
Demoクラスを作る
レッスン1でこれから作るクラスを動かすための実行クラスを作成します。クラス名はDemo
(Demonstration / デモンストレーション / 実演)という名前にします。(※クラス名は分かりやすければ何でもいいです。)
com.example.lesson01
パッケージを右クリックし、新規(W)
→ クラス
を選択します。
"名前(M):"にDemo
と入力し、"どのメソッド・スタブを作成しますか?"には、public static void main(String[] args)(V)
にチェックを入れ、"完了"ボタンをクリックします。
クラスが作成されると、中央のエディタビューにDemo.java
というソースファイルが表示されます。
ソースファイルにはmainという名前のメソッドがすでに作成されていますが、このmainメソッドはJavaプログラムを実行するために必要なメソッドです。
package com.example.lesson01; public class Demo { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ } }
ソースコードの修正と保存
mainメソッドを以下のように修正します。
public static void main(String[] args) { System.out.println("Lession01 Demo start"); System.out.println("Lession01 Demo end"); }
するとタブのファイル名の先頭にアスタリスク(*
)が付いたと思います。このアスタリスクは編集中のファイルであることを示しています。
この状態でCtrl + Sを押すとファイルが保存されアスタリスクが消えます。
Eclipseではファイルの保存と同時にソースコードのコンパイルが自動的に行われます。
もし、ソースコードに書き間違い (Syntax Error / シンタックスエラー / 構文エラー) があるとファイル名の先頭に赤い×アイコンが付きます。これはコンパイルエラーがおきたことを示しています。
たとえば、以下のようにSystem
をsystem
に書き直して保存すると
public static void main(String[] args) { system.out.println("Lession01 Demo start"); System.out.println("Lession01 Demo end"); }
Fig27のようにエラーがあるクラス、および当該の行に赤い×アイコンが付きます。
また、問題ビューにも現時点で起きているコンパイルエラーの内容が表示されます。
コンパイルエラーの起きているsystem
をSystem
になおしてファイルを保存すると赤い×アイコンが消えます。
Demoクラスを実行する
試しにDemoクラスを実行してみたいと思います。EclipseからJavaプログラムを実行する方法にはいくつかあります。
1). メニューバー → 実行(R)
→ 実行(S)
→ Java アプリケーション
2). ツールバー → 実行
アイコンの右の▼ → 実行(R)
→ Java アプリケーション
3). エディタ上で右クリックしメニューから実行(R)
→ Java アプリケーション
上記の方法のいずれかで実行すると画面下のコンソールビューに、mainメソッドに書いたコードの実行結果が出力されます。
起動ヒストリと実行構成の管理
Demoクラスを一度でも実行すると実行構成
というプログラム実行の設定と起動ヒストリ
が自動的に作成されます。そうすると以降はツールバーの実行
アイコンをクリックするだけでDemoクラスを実行することができます。
起動ヒストリとは、今までに実行したことのあるプログラムの一覧です。起動ヒストリは実行
アイコンの右の▼をクリックすると確認できます。
Fig33で”実行アイコンをクリックするだけで実行できます”と書きましたが、正確には起動ヒストリの一番上にリストされているプログラムが実行されます。
Fig34の左側がヒストリ無しで、Demoの実行後は右側のようにDemoの起動ヒストリが作成されています。
実行構成とは、プログラムをどのような条件で実行するかなどの設定です。Demoの実行構成を確認するには、このメニューの"実行の構成(N)..."をクリックします。
Fig35の左側のメニューのJava アプリケーション
の下にDemo
というメニューが表示されていると思いますが、これがDemoクラスの実行構成です。
右側にはその実行構成の設定内容が表示されています。"メイン"タブに表示されているプロジェクト名とメイン・クラスの内容の通り、この実行構成で実行するプログラムはstudy01project
プロジェクトのDemo
クラスだということがわかります。
ソースコードのフォーマット
Demoクラスのソースコードを以下のように修正して実行してみます。コンソールビューに実行結果が出力され、問題なく実行できたと思います。 このようにソースコードはインデント(段落)を付けても、付けなくても実行に支障がない場合がありますが、ソースコードの読みやすさを考えると基本的にインデントは付けるようにします。
package com.example.lesson01; public class Demo { public static void main(String[] args) { System.out.println("Lession01 Demo start"); System.out.println("Lession01 Demo end"); } }
この例ではたった数行のソースコードなのでタブキーを押して一行一行インデントを付けていくことも大して手間はかかりませんが、ソースコードが数百行に及ぶこともめずらしくありません。そのような場合に手動でインデントを付けると時間がかかるのでEclipseのコードフォーマット機能を利用します。 Ctrl + Shift + Fを押すと、ソースコードが自動的にフォーマットされて以下のようになったと思います。
package com.example.lesson01; public class Demo { public static void main(String[] args) { System.out.println("Lession01 Demo start"); System.out.println("Lession01 Demo end"); } }
ソースコードを書いているうちにフォーマットが崩れてきたとおもったら、自動フォーマットを行ってソースコードのフォーマットを整えるようにします。
保存アクションの設定
Eclipseの保存アクションの設定で、ファイル保存時にソースコードの自動フォーマットを行うことができます。この設定を行うと毎回Ctrl + Shift + Fを押して自動フォーマットを行わなくても済むので便利です。
設定はメニューバーのウィンドウ(W)
→ 設定(P)
を選択し、設定画面の左側メニューのJava
→ エディター
→ 保存アクション
を選択します。
右側の設定で"ソース・コードのフォーマット(S)"にチェックを入れ、"適用して閉じる"ボタンをクリックします。
この設定を有効にすると、以降はファイル保存時(Ctrl + S)に自動的にソースコードのフォーマットが行われ、ソースコードのインデントが常に保たれます。
以上で、前編は終了です。続く中編ではJavaコードの書き方をもう少し踏み込んで説明します。(現在記事作成中です)
Windows 10にPostgreSQL 12をインストーラを使わずにZipファイルからインストールする
はじめに
ローカルPCに開発用途のPostgreSQL 12をインストールする方法を説明します。インストール方法には、インストーラ(ファイルの拡張子がexe)を使う方法と、zipファイルを使う方法があります。通常はインストーラでインストールする方が簡単ですが、この記事ではzipファイルを使って手動でインストールする方法を説明したいと思います。
zipファイルでインストールするメリット
- レジストリを更新しないので、アンインストールはファイル削除だけで済む。
- 複数の異なるバージョンのPostgreSQLをインストールすることが簡単。
この記事ではWindows 10 64bitに、2020年3月現在で最新バージョンのPostgreSQL 12.2
をインストールします。
PostgreSQLのダウンロード
ダウンロードページ ( PostgreSQL: Windows installers ) からzipファイル (postgresql-12.2-1-windows-x64-binaries.zip
) をダウンロードします。Fig1の赤い枠線で囲った"zip archive"というリンクテキストをクリックします。
Fig2の赤い枠線で囲った"Win x86-64"というボタンをクリックするとzipファイルのダウンロードが始まります。
以上でPostgreSQLのダウンロードは完了です。
PostgreSQLのインストール
インストールと言ってもダウンロードしたzipファイルを7-Zipなどのツールで展開するだけです。 この記事では展開して出来たフォルダを以下のフォルダへコピーしました。以降はこのフォルダをインストールディレクトリと呼びます。
C:\dev\pgsql-12.2
このフォルダをWindowsエクスプローラで表示してFig3のような状態であることを確認します。
ユーティリティコマンド
インストールディレクトリ直下のbin
ディレクトリには、ユーティリティコマンドと呼ばれるコマンドが含まれています。たとえばデータベースを作成するcreatedb.exe
コマンド、ユーザーを作成するcreateuser.exe
コマンドなどです。
この記事では、データベースおよびユーザーの作成はこれらのユーティリティコマンドで行います。(データベースやユーザーの作成はSQLコマンドでも行えます)
pgAdmin 4
インストールディレクトリ直下のpgAdmin 4
ディレクトリにPostgreSQLデータベース用のGUI管理ツールが同梱されています。下記の場所にあるpgAdmin4.exe
を実行すると起動することができます。
C:\dev\pgsql-12.2\pgAdmin 4\bin\pgAdmin4.exe
初期設定
フォルダの作成
PostgreSQLのインストールディレクトリ直下にdata、logsフォルダを作成します。 以下のようにフォルダが出来ていればOKです。
C:\dev\pgsql-12.2\data C:\dev\pgsql-12.2\logs
データベースクラスター(Database Cluster)の作成
PostgreSQLではディスク上のデータベースストレージ領域をデータベースクラスターと呼び、最初に初期化する必要があります。
データベースクラスターを初期化するにはinitdb
コマンドまたはpg_ctl
コマンドを使用します。この記事ではpg_ctl
コマンドでデータベースクラスターを作成します。※以降のコマンドプロンプトからのコマンド実行は、断りが無い限りPostgreSQLのインストールディレクトリから行います。
-U
オプションでスーパーユーザーに任意の名前を付けることができますが、PostgreSQLの慣習ではpostgres
という名前を付けるのが一般的なのでそのようにしています。
bin\pg_ctl initdb -D "C:/dev/pgsql-12.2/data" -o "-A password -W -U postgres -E UTF8 --no-locale"
実行結果
途中でスーパーユーザー(postgres
)のパスワードを決めるように求められますので入力します。メッセージの最後の方に"成功しました。以下のようにしてデータベースサーバを起動することができます:" と出力されればデータベースクラスターの作成は完了です。
データベースシステム内のファイルの所有者はユーザ"<Windowsのユーザー名>"となります。 このユーザをサーバプロセスの所有者とする必要があります。 データベースクラスタはロケール"C"で初期化されます。 デフォルトのテキスト検索構成は english に設定されます。 データベージのチェックサムは無効です。 新しいスーパユーザのパスワードを入力してください: <postgresのパスワード> 再入力してください: <postgresのパスワード> ディレクトリC:/dev/pgsql-12.2/dataの権限を設定しています ... ok サブディレクトリを作成しています ... ok 動的共有メモリの実装を選択しています ... windows デフォルトのmax_connectionsを選択しています ... 100 デフォルトの shared_buffers を選択しています ... 128MB selecting default time zone ... Asia/Tokyo 設定ファイルを作成しています ... ok ブートストラップスクリプトを実行しています ... ok ブートストラップ後の初期化を実行しています ... ok データをディスクに同期しています ... ok 成功しました。以下のようにしてデータベースサーバを起動することができます: C:/dev/pgsql-12.2/bin/pg_ctl -D C:/dev/pgsql-12.2/data -l ログファイル start
オプションの意味
オプション | 値 | 意味 |
---|---|---|
-D | C:/dev/pgsql-12.2/data | データベースクラフターのデータディレクトリ |
-A | password | ユーザーのデフォルトの認証方法 |
-W | スーパーユーザーのパスワードを要求する | |
-U | postgres | スーパーユーザーの名前 |
-E | UTF8 | テンプレートデータベースのエンコーディング |
--no-locale | デフォルトのロケール. --no-locale は--locale=C と同様 |
データベースの起動
データベースクラスターの作成が完了したらデータベースを起動させることができます。データベースの起動はpg_ctl start
コマンドで行います。-D
オプションでデータディレクトリのフルパス、-l
オプションでログファイルのフルパスを指定します。
bin\pg_ctl start -D "C:/dev/pgsql-12.2/data" -l "C:/dev/pgsql-12.2/logs/postgresql.log"
実行結果
サーバの起動完了を待っています....完了 サーバ起動完了
postgresユーザーで接続する
データベースが起動したら、postgres
ユーザーで接続できることを確認します。接続にはクライアントツールのpsql
コマンドを使用します。-h
オプションで接続先のホスト名、-U
オプションで接続するユーザー名、-d
オプションで接続するデータベース名を指定します。
bin\psql -h localhost -U postgres -d postgres ユーザ postgres のパスワード: <postgresユーザーのパスワード> psql (12.2) "help"でヘルプを表示します。 postgres=#
バージョンの確認
select version();
でバージョンを確認できます。
postgres=# select version(); version ------------------------------------------------------------ PostgreSQL 12.2, compiled by Visual C++ build 1914, 64-bit (1 行)
データベース一覧を表示
\l
メタコマンドを実行すると、データベースの一覧を表示します。データベースクラスター作成直後の状態を確認します。(※メタコマンドについては後ほど簡単に触れます。)
postgres=# \l データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権限 -----------+----------+------------------+----------+-------------------+----------------------- postgres | postgres | UTF8 | C | C | template0 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres (3 行)
終了する場合は\q
メタコマンドかexit
と入力してenterを押下します。
データベースのステータスの確認
データベースのステータスはpg_ctl status
コマンドで確認できます。
bin\pg_ctl status -D "C:/dev/pgsql-12.2/data"
起動中のステータス
pg_ctl: サーバが動作中です(PID: 5852) C:/dev/pgsql-12.2/bin/postgres.exe "-D" "C:/dev/pgsql-12.2/data"
停止中のステータス
pg_ctl: サーバが動作していません
データベースの停止
データベースの停止はpg_ctl stop
コマンドで行います。
bin\pg_ctl stop -D "C:/dev/pgsql-12.2/data"
実行結果
サーバ停止処理の完了を待っています....完了 サーバは停止しました
メタコマンド
PostgreSQLにはメタコマンドという\
から始まるコマンドが用意されています。メタコマンドの種類は\?
というメタコマンドで確認できます。
よく使うメタコマンドにテーブル、ビュー、シーケンスを一覧表示する\d
、データベースを一覧表示する\l
があります。その他に下記に3つほど使用例をあげました。
別のデータベースへ接続する
接続中のpostgres
ユーザーから、sample_user
ユーザーでsample_db
データベースへ接続します。
\c sample_db sample_user
接続情報
\conninfo データベース"postgres"にユーザ"postgres"として、ホスト"localhost"(アドレス"::1")上のポート"5432"で接続しています。
クライアントのエンコーディング
\encoding SJIS
ユーザーの作成
postgres
ユーザーはスーパーユーザーつまり管理者権限を持つユーザーなので、管理操作以外で使用するための一般ユーザーを作成します。
この例ではcreateuser
コマンドでsample_user
というユーザーを作成します。-U
オプションにはデータベースに接続するユーザーを指定します。この例ではpostgres
ユーザーを指定しています。
bin\createuser -U postgres -W -P -e sample_user
新しいロールのためのパスワード: <sample_userのパスワード> もう一度入力してください:<sample_userのパスワード> パスワード: <postgresのパスワード> SELECT pg_catalog.set_config('search_path', '', false); CREATE ROLE sample_user PASSWORD 'md5c326ab35c9353dd34801ecd7ab7b1d76' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;
データベースの作成
createdb
コマンドでsample_user
ユーザーがオーナーのsample_db
データベースを作成します。-O
オプションでデータベースのオーナーになるユーザーを指定、-U
オプションにはデータベースに接続するユーザーを指定します。この例ではpostgres
ユーザーを指定しています。
bin\createdb -O sample_user -U postgres -W -l Japanese_Japan.932 -T template0 -e sample_db
実行結果
パスワード: <postgresのパスワード> SELECT pg_catalog.set_config('search_path', '', false); CREATE DATABASE sample_db OWNER sample_user TEMPLATE template0 LC_COLLATE 'Japanese_Japan.932' LC_CTYPE 'Japanese_Japan.932';
データベースの削除
作成したデータベースを削除はdropdb
コマンドで行います。以下はsample_db
データベースを削除する例です。
bin\dropdb -U postgres -W -e sample_db
実行結果
パスワード: <postgresのパスワード> SELECT pg_catalog.set_config('search_path', '', false); DROP DATABASE sample_db;
起動・停止用のバッチファイルの作成
PostgreSQLサーバーの起動や停止を簡単に行うためにバッチファイルを作成します。バッチファイルを作成しておけば、以降の起動や停止はバッチファイルを実行するだけで行えるようになります。
起動用
インストールディレクトリ直下にstartup.batという名前のファイルを作成します。
C:\dev\pgsql-12.2\startup.bat
startup.batをテキストエディタで開き、以下の内容をコピーしてペーストします。
rem 起動用 C:\dev\pgsql-12.2\bin\pg_ctl start -D "C:/dev/pgsql-12.2/data" -l "C:/dev/pgsql-12.2/logs/postgresql.log" pause
停止用
インストールディレクトリ直下にshutdown.batという名前のファイルを作成します。
C:\dev\pgsql-12.2\shutdown.bat
shutdown.batをテキストエディタで開き、以下の内容をコピーしてペーストします。
rem 停止用 C:\dev\pgsql-12.2\bin\pg_ctl stop -D "C:/dev/pgsql-12.2/data" pause
postgresユーザー接続用
インストールディレクトリ直下にpostgres_user.batという名前のファイルを作成します。
C:\dev\pgsql-12.2\postgres_user.bat
postgres_user.batをテキストエディタで開き、以下の内容をコピーしてペーストします。
rem postgresユーザーでログイン C:\dev\pgsql-12.2\bin\psql -U postgres -d postgres
テーブルの作成
作成したsample_user
で接続しsample_db
データベースにtodo
テーブルを作成します。
bin\psql -U sample_user -d sample_db ユーザ sample_user のパスワード: <sample_userのパスワード> psql (12.2) "help"でヘルプを表示します。 sample_db=>
以下のSQL文を実行してテーブルとシーケンスを作成します。
CREATE TABLE IF NOT EXISTS todo ( id BIGSERIAL NOT NULL, title VARCHAR(255) NOT NULL, description VARCHAR(1024) NULL, done BOOLEAN DEFAULT FALSE NOT NULL, create_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL, update_at TIMESTAMP WITHOUT TIME ZONE NULL, PRIMARY KEY (id) );
データの登録
INSERT INTO todo (title) VALUES ('買い物に行く') , ('部屋の掃除') , ('犬の散歩') , ('ブログを書く') , ('JavaScriptの勉強') ;
PostgreSQLの再インストール
なんらかの理由でPostgreSQLの環境をリセットして再作成したい場合は、以下のフォルダをWindowsエクスプローラで削除し、『初期設定』の『フォルダの作成』からやり直します。 ※dataフォルダも削除するので、それまで作成したデータがそのまま消えてしまう点に注意してください。
C:\dev\pgsql-12.2\data C:\dev\pgsql-12.2\logs
PostgreSQLのアンインストール
PostgreSQLのインストールディレクトリをWindowsエクスプローラで削除します。
C:\dev\pgsql-12.2
補足
参考情報
Windows 10にMySQL Workbenchをインストールする方法と初歩的な使い方の説明
はじめに
MySQL WorkbenchはMySQLサーバーと同じOracleが開発している無償で使えるMySQLサーバー専用のデータ管理ツールです。この記事ではWindows 10へMySQL Workbenchをインストールする方法、および初歩的な使い方を説明します。
MySQL Workbenchのダウンロード
ダウンロードページ( MySQL :: Download MySQL Workbench )からインストーラ(mysql-workbench-community-8.0.19-winx64.msi
)をダウンロードします(2020年3月現在の最新バージョンです)。
ダウンロード画面(Fig1)の赤い枠線で囲った"Select Operating System:"は"Microsoft Windows"を選択、ダウンロードするファイルは"Windows (x86, 64-bit), MSI Installer"を選びます。
次のダウンロード画面(Fig2)の赤い枠線で囲った”No thanks, just start my download.”というリンクをクリックするとダウンロードが始まります。
なお、MD5チェックサムの検証方法は、この記事で説明していますのでご覧ください。 rubytomato.hateblo.jp
以上でMySQL Workbenchのダウンロードは完了です。
MySQL Workbenchのインストール
ダウンロードしたインストーラ(mysql-workbench-community-8.0.19-winx64.msi
)をダブルクリックして実行します。
インストール自体はインストーラの画面の通り進めていけばOKです。
インストールが完了すると、そのままMySQL Workbenchが起動します。(Fig8)
コネクションの作成
まず、コネクションを作成する前にMySQLサーバーを起動しておきます。 次にMySQL Workbenchのトップ画面(Fig9)の赤い枠線で囲った+アイコンをクリックします。
Setup New Connection画面(Fig10)のConnection Name:に"localhost"と入力しました。この名前は分かりやすい名前であればなんでも良く、例えば"Local DB"でも良いです。 Test Connectionボタンをクリックします。
rootユーザーのパスワードを入力してOKボタンをクリックします。
認証できると成功画面(Fig12)が表示されます。
Setup New Connection画面に戻るのでOKボタンをクリックして入力内容を登録します。
MySQL Workbenchのトップ画面(Fig9)に戻りますが、トップ画面にいま登録したコネクションが追加されています。表示されている"Localhost"とはSetup New Connection画面(Fig10)で入力したConnection Nameで、"root"は接続ユーザー名です。
接続する
Fig13の登録したlocalhostコネクションをクリックするとrootユーザーのパスワード入力を求められるので入力します。 認証が成功するとFig14の画面が表示されます。 画面中央の"Query 1"というタブがSQL文を入力して実行する欄になります(タブは増やすことができます)。ここにテーブル作成やデータ挿入を行うSQL文を入力して実行します。その下の"Output"というビューにはこれまで実行したSQLの内容とその成否(成功したか失敗したか)が表示されます。 画面左側の"Navigator"は2つのタブに分かれていて、"Schemas"タブにはデータベース(MySQLではスキーマと同じ意味)の情報、"Administration"タブにはMySQLサーバーの情報が表示されます。
SQLを実行する
画面中央の"Query 1"タブでSQLを入力して実行してみます。実行するのは
- 1) データベース作成
- 2) ユーザー作成
- 3) ユーザーの権限設定
- 4) テーブル作成
- 5) データ登録
- 6) データ検索
- 7) データ更新
- 8) データ全件削除
です。
1) データベースを作成する
データベースの作成はCREATE DATABASE
文を使用します。IF NOT EXISTS
とはsample_dbというデータベースが無ければ実行するという意味になります。
CREATE DATABASE IF NOT EXISTS sample_db CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ;
このSQL文を実行するにはFig15の赤い線で囲ったアイコンをクリックするか、Ctrl + Enterを押下します。 左端の数値は行番号で、その隣の●アイコンはSQLステートメントの先頭に表示されます。
OutputビューにSQLの実行結果が表示されます。左端のアイコンが実行結果で、緑色のアイコンは成功、赤色のアイコンは失敗を示します。
(補足)上記でSQLステートメントの先頭に●アイコンが付くと書きましたが、正確には正しいSQLステートメント(構文エラーが無い)に●アイコンが付き、正しくないSQLステートメント(構文エラー / Syntax Error)の場合は赤い×アイコンが付きます。Fig15Bは、SQL文が正しくないので×アイコンが付いています。
2) ユーザーを作成する
ユーザーの作成はCREATE USER
文を使用します。
CREATE USER IF NOT EXISTS 'sample_user'@'localhost' IDENTIFIED BY 'sample_pass' PASSWORD EXPIRE NEVER ;
この画面(Fig17)では●アイコンが2つ表示されているので、2つのSQLステートメントが入力されていることがわかります。 このように1つのタブに複数のSQLステートメントが入力されている状態で、任意のSQLステートメントを実行するにはSQLステートメントかその行末にカーソルを置いた状態で SQLの実行アイコンをクリックするか、Ctrl + Enterを押下します。 この例では2つ目のSQLステートメント(つまりCREATE USER文)を実行したいので、行番号10にカーソルを置いて実行アイコンをクリックします。
このようにOutputビューにSQLの実行結果が表示されます。
3) ユーザーの権限を設定する
2)で作成したsample_user
へ、1)で作成したsample_db
に対して権限を与えます。権限の付与はGRANT
文を使用します。
GRANT ALL ON sample_db.* TO 'sample_user'@'localhost';
OutputビューにSQLの実行結果が表示されます。
4) テーブルを作成する
テーブルの作成はCREATE TABLE
文を使用します。テーブル名の前にsample_db
とデータベース名を付けている点に注意してください。
CREATE TABLE IF NOT EXISTS sample_db.todo ( id BIGINT AUTO_INCREMENT, title VARCHAR(255) NOT NULL, description VARCHAR(1024) NULL, done BOOLEAN NOT NULL DEFAULT FALSE, create_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), update_at TIMESTAMP(3) NULL, PRIMARY KEY (id) ) CHARACTER SET = utf8mb4, COLLATE utf8mb4_general_ci ;
OutputビューにSQLの実行結果が表示されます。
データベースの状態を確認
テーブルまで作成したので、この時点でのデータベースの状態を確認します。 Navigator画面(Fig23)の赤い枠線で囲ったアイコンをクリックするとデータベースの状態が更新されます。
更新後のNavigator画面(Fig24)です。このように作成したデータベース(sample_db
)と、テーブル(todo
)が確認できます。
さらにデータベース名(sample_db
)を右クリックし、メニューからSchema Inspectorを選択すると(Fig25)、データベースに関する情報を確認できる画面(Fig26)が表示されます。同様にテーブル名(todo
)を右クリックし、メニューからTable Inspectorを選択すると、テーブルに関する情報が確認できます。
タブ(Tables、Columns、Indexes、Triggersなど)で、それぞれの情報を確認できます。
新しいコネクションを登録する
rootユーザーは管理者権限を持つユーザーなので特定の場合でしか使用しません。以降の操作は新しく作成したユーザー(sample_user
)で行うように新しいコネクションを登録します。
いま開いているコネクションは、メニューバーのFile
→ Close Connection Tab
をクリックして閉じます。
Setup New Connection画面(Fig27)を開いたら、Connection Name:に任意の名前を(この例では"localhost (sample_user)"としました)、Username:にsample_user
、Default Schema:にsample_db
と入力します。
次にPassword:の"Store in Vault ..."というボタンをクリックして、sample_user
のパスワードを入力します(Fig28)。
最後にOKボタンをクリックすると画面(Fig29)に新しいコネクションが登録されていると思います。このコネクションをクリックするとsample_user
でsample_db
へ接続します。
5) データを登録する
新しいコネクションで接続したら、テーブル(todo
)へデータを登録してみます。
INSERT INTO todo (title) VALUES ('買い物に行く') , ('部屋の掃除') , ('犬の散歩') , ('ブログを書く') , ('JavaScriptの勉強') ;
auto_commit
デフォルトではauto_commitは有効になっているので、insert文やdelete文を実行するとその都度コミットされます。 auto_commitの設定はFig30の赤い枠線で囲ったアイコンで切り替えられます。これは有効な状態で
クリックするとauto_commitは無効になりFig31のようになります。また左隣りの2つのアイコン(commitとrollback)が有効になり、変更をコミットする場合は明示的にcommitアイコンをクリックする必要があります。
このINSERT文を実行して、commitアイコンをクリックするとOutputはFig32のようになります。
6) データを検索する
以下のSELECT文で登録したデータを検索してみます。
select * from todo;
Queryタブの下に検索結果が表形式で表示されます。また、赤い枠線で囲ったエクスポートアイコンをクリックすると検索したデータをCSV形式のファイルに出力できます。
7) データを更新する
表形式のデータを直接編集して更新することもできます。 たとえば3行目の"犬の散歩"を"犬の散歩へ行く"に編集してみます。すると右下の"Apply"、"Revert"ボタンがクリックできるようになります。編集をコミットするには"Apply"ボタンをクリックします。 Applyボタンをクリックします。 Applyボタンをクリックします。Cancelをクリックするとコミットを中断します。 Finishボタンをクリックして完了します。
(補足)データの更新はQueryタブから直接UPDATE文を実行することでも可能です。
8) データを全件削除する
以下のDELETE文でtodo
テーブルのデータを全件削除しようとすると、エラーが発生して削除できません。
delete from todo;
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.
デフォルトの設定では、安全性を考慮して全件を削除することはできないようになっています。この設定を変えるにはメニューバーのEdit
→ Preferences...
→ SQL Editor
→ Other
のSafe Update
のチェックを外し、再接続します。
SQLを実行する (その2)
SQLを実行する方法は2つあります。いままではカーソルのあるSQLステートメントだけを実行してきましたが、複数のSQLステートメントをまとめて実行する方法もあります。 たとえば、以下のような個別のINSERT文をまとめて実行するには、
INSERT INTO todo (title) VALUES ('買い物に行く'); INSERT INTO todo (title) VALUES ('部屋の掃除'); INSERT INTO todo (title) VALUES ('犬の散歩'); INSERT INTO todo (title) VALUES ('ブログを書く'); INSERT INTO todo (title) VALUES ('JavaScriptの勉強');
Fig40の赤い枠線で囲ったアイコンをクリックします。
また、Fig41のように選択状態にすると、選択されたSQLステートメントだけが実行されます。この例では上3行のINSERT文だけが実行されます。
Windows 10にMySQL 8.0をMSIインストーラを使わずにZipファイルからインストールする
はじめに
ローカルPCに開発用途のMySQL 8.0をインストールする方法を説明します。インストール方法には、MSIインストーラ(ファイルの拡張子がmsi)を使う方法と、zipファイルを使う方法があります。 ダウンロードページではMSIインストーラがお勧めされていますが、この記事ではzipファイルを使って手動でインストールする方法を説明したいと思います。
zipファイルでインストールするメリット
この記事ではWindows 10 64bit
に、2020年3月現在で最新バージョンのMySQL Community Server 8.0.19
をインストールします。
事前準備
Windows 10にMySQLをインストールするには、事前にMicrosoft Visual C++ 2015 Redistributable Package
というランタイムライブラリをインストールしておく必要があります。
Important
MySQL 8.0 Server requires the Microsoft Visual C++ 2015 Redistributable Package to run on Windows platforms. Users should make sure the package has been installed on the system before installing the server. The package is available at the Microsoft Download Center.
インストールされていない場合はMicrosoftサポートページ ( https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads ) からインストーラをダウンロードしてインストールします。
Windows 10が32ビット/64ビットかでダウンロードするファイルが異なります。64ビットの場合はFig1の赤い線を引いた"vc_redist.x64.exe"というリンクをクリックします。
ダウンロードした"vc_redist.x64.exe"をダブルクリックするとインストール画面が表示されるので”ライセンス条項および使用条件に同意する(A)”をチェックしてインストールボタンをクリックします。
インストールが終了するとPCを再起動するように求められるので再起動します。 以上でインストールは完了です。
MySQLのダウンロード
ダウンロードページ ( MySQL :: Download MySQL Community Server ) からzipファイル (mysql-8.0.19-winx64.zip) をダウンロードします。 Fig3の赤い枠線で囲った"Select Operating System:"は"Microsoft Windows"を選択、ダウンロードするファイルは"Windows (x86, 64-bit), ZIP Archive"を選びます。
Fig4のダウンロード画面の赤い枠線で囲った”No thanks, just start my download.”というリンクをクリックするとダウンロードが始まります。
zipファイルをダウンロードしたら、そのzipファイルが正しいか(破損していないか、改ざんされていないか)確認するため、MD5チェックサムで検証します。
Fig3のオレンジ色の線を引いたところにMD5: f52c52e7b499958acc5f08ce0a869cab
という記載がありますが、これがダウンロードするzipファイルのMD5チェックサムです。
実際にダウンロードしたzipファイルのMD5チェックサムを出力し、ダウンロードページに記載されているMD5チェックサムと同一であれば正しいファイルと判断できます。
MD5チェックサムの出力には、Windows 10標準コマンドのcertutil.exe
を使用します。
zipファイルのあるフォルダでコマンドプロンプトを開き、以下のコマンドを入力します。
certutil -hashfile mysql-8.0.19-winx64.zip MD5
コマンドを実行すると次の結果が出力されます。2行目がMD5チェックサムです。ダウンロードページに記載されてるMD5チェックサムと比較します。
MD5 ハッシュ (対象 mysql-8.0.19-winx64.zip): f52c52e7b499958acc5f08ce0a869cab CertUtil: -hashfile コマンドは正常に完了しました。
以上でMySQLのダウンロードは完了です。
MySQLのインストール
インストールと言ってもダウンロードしたzipファイルを7-Zipなどのツールで展開するだけです。 この記事では展開して出来たフォルダを以下のフォルダへコピーしました。以降はこのフォルダをインストールディレクトリと呼びます。
C:\dev\mysql-8.0.19-winx64
このフォルダをWindowsエクスプローラで表示してFig5のような状態であることを確認します。
初期設定
オプションファイルの作成
オプションファイルとはmy.cnf
やmy.ini
というファイル名で知られるMySQLの設定をまとめたテキストファイルです。
Windowsではmy.ini
というファイル名が一般的なので、このファイルをインストールディレクトリ直下に作成します。
C:\dev\mysql-8.0.19-winx64\my.ini
とりあえず、以下の内容をコピーしてmy.iniファイルへペーストします。もしMySQLのインストールディレクトリがC:\dev\mysql-8.0.19-winx64
でなければ、ファイルパスは適宜修正してください。
またファイルパスの区切り文字は\
ではなく2重\\
にします。
[mysqld] basedir = C:\\dev\\mysql-8.0.19-winx64 datadir = C:\\dev\\mysql-8.0.19-winx64\\data tmpdir = C:\\dev\\mysql-8.0.19-winx64\\temp ## logging general_log = 1 general_log_file = C:\\dev\\mysql-8.0.19-winx64\\logs\\general.log log_error = C:\\dev\\mysql-8.0.19-winx64\\logs\\error.log slow_query_log = 1 slow_query_log_file = C:\\dev\\mysql-8.0.19-winx64\\logs\\slow_query.log log_timestamps = SYSTEM
フォルダの作成
MySQLのインストールディレクトリ直下にdata
、logs
、temp
フォルダを作成します。
以下のようにフォルダが出来ていればOKです。
C:\dev\mysql-8.0.19-winx64\data C:\dev\mysql-8.0.19-winx64\logs C:\dev\mysql-8.0.19-winx64\temp
- data は MySQLのデータファイルが格納されます。
- logs は ログファイルが格納されます。
- temp は 一時ファイルが作成されます。
MySQLの初期化
MySQLのインストールディレクトリでコマンドプロンプトを開き、以下のコマンドでMySQLの初期化を行います。 ※以降のコマンドプロンプトからのコマンド実行は、断りが無い限りMySQLのインストールディレクトリから行います。
初期化処理に問題が無ければ特にメッセージは出力されません。もし何かメッセージが表示された場合はエラーが起きた可能性があるので、これまでの作業を見直してください。
bin\mysqld --defaults-file=C:\dev\mysql-8.0.19-winx64\my.ini --initialize
Windowsエクスプローラでlogsフォルダを開き、error.logというファイルをテキストエディタで開きます。 このファイルにはMySQLのrootユーザーの仮パスワードが記録されています。
2020-03-20T17:12:39.004140+09:00 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xhkUnc1qQe%8
この行のxhkUnc1qQe%8
が仮パスワードです。
MySQLの起動
MySQLの初期化が終了したら起動してrootユーザーでログインしてみます。 起動は以下のコマンドで行います。
bin\mysqld --defaults-file=C:\dev\mysql-8.0.19-winx64\my.ini --console
以下が起動メッセージです。この中の3行目のready for connections. Version: '8.0.19' socket: '' port: 3306 MySQL Community Server - GPL.
というメッセージがあれば起動できています。
2020-03-20T17:22:48.440783+09:00 0 [System] [MY-010116] [Server] C:\dev\mysql-8.0.19-winx64\bin\mysqld.exe (mysqld 8.0.19) starting as process 11176 2020-03-20T17:22:49.331232+09:00 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2020-03-20T17:22:49.408022+09:00 0 [System] [MY-010931] [Server] C:\dev\mysql-8.0.19-winx64\bin\mysqld.exe: ready for connections. Version: '8.0.19' socket: '' port: 3306 MySQL Community Server - GPL. 2020-03-20T17:22:49.617563+09:00 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060
rootユーザーでログインする
MySQLの起動が確認できたらrootユーザーでログインしてみます。 MySQLのインストールディレクトリで新しいコマンドプロンプトを開き、以下のコマンドを実行してrootユーザーでログインします。
bin\mysql -u root -p
Enter password:
には先ほど確認した仮パスワードを入力します。
ログインできると以下のようなメッセージが表示されると思います。
Enter password: ************ Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.19 Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
仮パスワードを変更する
仮パスワードをそのまま使い続けることはできないので、以下のSQLコマンドで変更します。
new password
の部分を新しいパスワードに変えて実行してください。またパスワードはシングルクォート( '
)で囲みます。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
変更が成功すると以下のメッセージが表示されます。
Query OK, 0 rows affected (0.01 sec)
パスワードの変更ができたら以下のSQLコマンドでログアウトします。
exit
MySQLの停止
rootユーザーでのログインまで確認できたら一旦MySQLを停止します。 停止は以下のコマンドで行います。
bin\mysqladmin -u root -p shutdown
Enter password:
には、先ほど変更したrootユーザーのパスワードを入力します。
Enter password: ********
MySQLを起動したコマンドプロンプトを見てみると、以下のメッセージが表示されていて停止したことがわかります。
2020-03-20T17:37:22.663545+09:00 9 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.19). 2020-03-20T17:37:22.667429+09:00 0 [System] [MY-013105] [Server] C:\dev\mysql-8.0.19-winx64\bin\mysqld.exe: Normal shutdown. 2020-03-20T17:37:22.999047+09:00 0 [System] [MY-010910] [Server] C:\dev\mysql-8.0.19-winx64\bin\mysqld.exe: Shutdown complete (mysqld 8.0.19) MySQL Community Server - GPL.
MySQLの起動・停止用バッチファイルを作成
これまで、MySQLの起動・停止はコマンドプロンプトからコマンドを入力して行ってきましたが、これらのコマンドをバッチファイルにすることで簡単に行えるようにします。
起動用バッチファイル
インストールディレクトリ直下にstartup.bat
という名前のファイルを作成します。
C:\dev\mysql-8.0.19-winx64\startup.bat
startup.batをテキストエディタで開き、以下の内容をコピーしてペーストします。
rem 起動用バッチ C:\dev\mysql-8.0.19-winx64\bin\mysqld --defaults-file=C:\dev\mysql-8.0.19-winx64\my.ini --console pause
rootユーザーログイン用バッチファイル
インストールディレクトリ直下にroot_user.bat
という名前のファイルを作成します。
C:\dev\mysql-8.0.19-winx64\root_user.bat
root_user.batをテキストエディタで開き、以下の内容をコピーしてペーストします。
rem rootユーザーでログイン C:\dev\mysql-8.0.19-winx64\bin\mysql --defaults-file=C:\dev\mysql-8.0.19-winx64\my.ini -u root -p
停止用バッチファイル
インストールディレクトリ直下にshutdown.bat
という名前のファイルを作成します。
C:\dev\mysql-8.0.19-winx64\shutdown.bat
shutdown.batをテキストエディタで開き、以下の内容をコピーしてペーストします。
rem 停止用バッチ C:\dev\mysql-8.0.19-winx64\bin\bin\mysqladmin -u root -p shutdown pause
これで、MySQLの起動はstartup.bat、停止はshutdown.batのクリックで行えるようになりました。 また、MySQLが起動していればroot_user.batをクリックしてrootユーザーでログインできます。
バッチファイルを作成する理由
ソフトウェアをインストールすると実行ファイルがあるパスを環境変数pathに追加するということがよくあります。
MySQLで言えばMySQLサーバーの実行ファイルであるmysqld.exe
、MySQLクライアントのmysql.exe
などです。フルパスを入力するよりmysql
と入力するだけで実行できるので便利ですが、複数バージョンのMySQLをインストールしていて使い分けしたい場合は、どのバージョンのMySQLがpathに登録されているのか気にする必要がでてきます。
このような場合、起動・停止用のバッチファイルを作成し実行ファイルへのフルパスを記述することで環境変数pathに登録する必要がなくなります。
pauseコマンド
startup.batとshtudown.batにpauseコマンドを入れています。pauseはコマンドプロンプトのコマンドで、エンターキーの入力があるまで処理を一時停止します。 pauseコマンドを入れておく理由は、MySQLの起動や停止に異常があった場合にコマンドプロンプト上で確認することができるためです。逆に入れていないとエラーが起きていてもコマンドプロンプトがそのまま閉じてしまうのでエラーが確認できません。 ただし、起動や停止に問題が内容であればbatファイルから削除しても構いません。
パスワードの入力を省略する
これはセキュリティ上よくないので、ローカル開発環境でのみ利用するようにしてください。
バッチファイルの-p
オプションを以下のように--password=*****
(***** は rootユーザーのパスワードに読み替えてください)と書き換えることで、パスワードの入力を省略できます。
rem rootユーザーでログイン C:\dev\mysql-8.0.19-winx64\bin\mysql --defaults-file=C:\dev\mysql-8.0.19-winx64\my.ini -u root --password=*****
MySQLの再インストール
なんらかの理由でMySQLの環境をリセットして再作成したい場合は、以下のフォルダをWindowsエクスプローラで削除し、『初期設定』の『フォルダの作成』からやり直します。 ※dataフォルダも削除するので、それまで作成したデータがそのまま消えてしまう点に注意してください。
C:\dev\mysql-8.0.19-winx64\data C:\dev\mysql-8.0.19-winx64\logs C:\dev\mysql-8.0.19-winx64\temp
MySQLのアンインストール
MySQLのインストールディレクトリをWindowsエクスプローラで削除します。
C:\dev\mysql-8.0.19-winx64
事前準備の項でMicrosoft Visual C++ 2015 Redistributable Package
をインストールした場合は、Windows 10の設定 → アプリと機能の画面からアンインストールします。
Spring BootでシンプルなWebアプリケーションを開発する環境構築手順について
はじめに
これはJavaやSpring Bootの学習をするために動かせるプロジェクトを作成したいけど、そのための環境構築やプロジェクト作成方法がわからない方向けの記事です。 記事の前半で開発環境の構築手順、後半でWebアプリケーションのプロジェクト作成と実行までを説明しています。 作成するプロジェクトは"Hello World"を表示するだけのシンプルなWebアプリケーションですが、これをベースにいろいろと手を入れながら学習できると思います。
開発環境の構築手順
開発環境について
この記事の説明で利用するPCはWindows 10です。Macユーザの方は適宜読み替えてください。
Java
Javaは、OpenJDK 13.0.2を使用します。(2020/3月時点の最新バージョンです)
インストール
OpenJDKのインストールは、一般的なソフトウェアやOracle JDKのインストールとは違って、zipファイルをダウンロードしそれを展開して配置するだけで済みます。 まず、zipファイルをダウンロードするためhttp://jdk.java.net/13/にアクセスします。 Fig1の赤い枠線で囲ったリンクをクリックするとzipファイルのダウンロードがはじまります。
ダウンロードが完了したら、7-Zipなどzipファイルを展開するツールを使って任意のフォルダへzipファイルを展開します。 この記事では下記の場所へ展開しましたので、この場所をOpenJDKのインストールフォルダとして説明を続けます。
C:\dev\openjdk\jdk-13.0.2
念のため、Windowsエクスプローラでこの場所に下記のフォルダやファイルがあることを確認します。
バージョンの確認
コマンドプロンプトを起動し、下記のコマンドを実行してOpenJDKのバージョンを確認します。
C:\dev\openjdk\jdk-13.0.2\bin\java -version
以下の実行結果が返ってくれば成功です。
openjdk version "13.0.2" 2020-01-14 OpenJDK Runtime Environment (build 13.0.2+8) OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
環境変数pathの設定
javaコマンドを毎回フルパス(絶対パス)で入力しなくても済むように、環境変数pathにjavaコマンドのフルパスを追加します。
Windowsのスタートメニューを開き(キーボードのWinキーを押下でも可)、そのままenv
と入力します。
Fig3のような画面が表示されたら、赤い枠線で囲った”開く"をクリックします。
Fig4の”環境変数(N)"ボタンをクリックします。
Fig5のようにJAVA_HOME
というシステム変数の変数値にOpenJDKのインストールディレクトリを登録します。
最後にFig6のように環境変数pathに%JAVA_HOME%\bin
という値を追加します。
環境変数pathが正しく設定されたかどうか確認するため、コマンドプロンプトを新しく開き以下のコマンドでバージョンを確認します。 バージョン情報が返ってきたら成功です。
java -version
Eclipse
Webアプリケーションの開発ツールにEclipseを使用します。開発ツールにはEclipse以外にもIntelliJ IDEAやNetBeans、Spring Tools Suiteなどがあります。また日本語化されていて便利な拡張機能がプレインストールされているPleiades All in Oneも人気があります。
インストール
EclipseのインストールもOpenJDKと同様にzipファイルをダウンロードして展開するだけで済みます。 ダウンロードページにアクセスするとFig7のページが表示されますが、ここのダウンロードボタンではなく赤い枠線で囲った"Download Packages"というリンクをクリックします。
この画面(Fig8)の"Windows 64-bit"のリンクをクリック、次の画面(Fig9)のファイル名をクリックするとzipファイルのダウンロードが始まります。
ダウンロードしたzipファイルを7-Zipなどのツールで展開します。 この記事では下記の場所へ展開しましたので、この場所をEclipseのインストールフォルダとして説明を続けます。
C:\dev\eclipse
Windowsエクスプローラで、この場所に下記のフォルダやファイルがあることを確認します。
eclipse.exe
を右クリックしてメニューの「送る」→「デスクトップ(ショートカットを作成)」をクリックします。これでデスクトップにEclipseのショートカットアイコンが作成されました。
起動と設定
デスクトップに作成したEclipseのアイコンをクリックしてEclipseを起動します。
起動するとワークスペースの場所を決めるダイアログウィンドウが表示されます。ワークスペースの場所はどこでも構わないのですが、この記事ではEclipseをインストールしたフォルダと同じ場所にeclipse-workspace
というフォルダを作成しました。
C:\dev\eclipse-workspace
起動するとWelcome画面(Fig12)が表示されます。右下のチェックを外してWelcome画面を閉じます。(チェックを外さないと毎回Welcome画面が表示されます)
次にJAVA_HOMEの設定が正しく反映されているか確認します。
メニューバーのWindow
→ Preferences
をクリックし、左側メニューのJava
→ Installed JREs
をクリックします。
画面右側のInstalled JREsにJAVA_HOMEで登録したOpenJDKが反映されていることを確認します。
そのまま続けて、左側メニューのGeneral
→ Workspace
をクリックします。
画面右側のText file encoding
をDefault (MS932)
からOtherのUTF-8
へ、New text file line delimiter
をDefault (Windows)
からOtherのUnix
へ変更します。(この変更はプロジェクトをGitで管理する場合を想定しています。)
次に左側メニューのGeneral
→ Editors
→ Text Editors
をクリックします。
画面右側のShow whitespace characters
をチェックします。この設定を有効にすると目に見えない文字(半角スペースやタブ、改行)がエディタ上では代替文字で可視化されるようになります。
拡張機能のインストール
Spring Bootを使ったWebアプリケーションのプロジェクトを作成できるようにSpring Tools 4
という拡張機能を追加します。
メニューバーのHelp
→ Eclipse Marketplace...
をクリックし、Searchタブの検索フィールドにspring tools 4
と入力して検索します。
画面(Fig16)に表示された"Spring Tools 4 (aka Spring Tool Suite 4) 4.5.1.RELEASE"のInstallボタンをクリックしてインストールを始めます。
確認画面(Fig17)で、そのままConfirmボタンをクリックします。
ライセンスの同意画面(Fig18)で、I accept the terms of the license agreements
にチェックを入れてライセンスに同意し、Finishボタンをクリックしてインストールを開始します。
インストールが終わるとEclipseの再起動を促されるので、一旦再起動します。
以上で開発環境の構築は完了です。
プロジェクトの作成
Spring Bootを利用したWebアプリケーションのプロジェクトを簡単に作成する手段がいくつかありますが、主なものではSpring InitializrというWebサービスを利用する方法、もう1つはEclipse拡張機能のSpring Tools 4を利用する方法があります。 この記事では2つ目の方法、Spring Tools 4を使ってプロジェクトを作成します。
プロジェクトの作成開始
EclipseのメニューバーのFile
→ New
→ Other...
をクリックします。
画面(Fig 19)のフィールドにspring
と入力し、検索結果に表示されたSpring Starter Projectを選択して、Nextボタンをクリックします。
プロジェクトのアーキテクチャを選択
この画面(Fig 20)で、Java Versionを13
へ変更します。Typeでプロジェクトのビルドツールを選択できますがデフォルトのMaven
のままにします。
Spring Bootの依存ライブラリを選択
Spring Boot 2.2.5は、2020年3月現在の最新バージョンです。 画面左に利用できるライブラリの一覧がカテゴリ別に表示されています。 画面右に選択したライブラリの一覧が表示されます。(Fig21は最初の状態なので何も選択されていません)
この記事で開発するWebアプリケーションは"Hello World"を表示するだけのシンプルなものなので、必要な依存ライブラリは以下の3つだけです。
- Webカテゴリの
Spring Web
- Template Enginesカテゴリの
Thymeleaf
- Developer Toolsカテゴリの
Spring Boot DevTools
Spring Webの追加
Thymeleafの追加
Spring Boot DevToolsの追加
選択できる依存ライブラリはたくさんありますが、とりあえず必要なのは3だけなので選択できたら最後にFinishボタンをクリックしプロジェクトを作成します。 (※たとえば、データベースを扱いたい場合はSQLカテゴリの"Spring Data JPA"や"Spring Data JDBC"とデータベースドライバ(MySQL DriverやPostgreSQL Driver)を選択します。)
作成直後のプロジェクトの状態
プロジェクトの作成が完了すると、Project Explorerにプロジェクトが展開されます。
プロジェクト内にDemoApplication
というクラスがありますが、これはSpring Tools 4が生成したクラスで、Spring Bootを利用したアプリケーションの起動クラスになります。
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
また、"src/main/resources"にapplication.propertiesというSpring Bootアプリケーションの設定ファイルが生成されていますが、プロジェクト作成直後はただの空ファイルです。 この記事でも特に設定を変える部分はないので編集しません。
Mavenでビルドする
とりあえず、プロジェクト作成直後の状態でビルドを行ってみます。
Project Explorer上のプロジェクト名を右クリックし、メニューのRun As
→ Maven build
をクリックします。
編集画面(Fig27)でGoalsにclean package
と入力し、Runボタンをクリックしてビルドを行います。(編集画面の設定は、この後でも行えます)
ビルド結果がEclipseのConsoleに出力されます。Fig28のように"BUILD SUCCESS"と表示されればビルドは成功です。
ビルドが成功すると、targetフォルダにjarファイル(成果物/アーティファクト)が生成されています。 jarファイルが見えない場合は、Project Explorer上のプロジェクト名を選択した状態でF5キーを押下して画面をリフレッシュしてください。
以降のMavenビルドは、プロジェクト名を右クリック → Run AS
→ Maven build
で行えます。
Hello Worldの実装
ここから、"Hello World"を表示するWebアプリケーションの開発手順について説明します。
controllerパッケージを追加する
com.example.demo
というパッケージを右クリックし、メニューのNew
→ Package
をクリックします。
controllerクラスを追加する
作成したcom.example.demo.controller
パッケージを右クリックし、メニュ―のNew
→ Class
をクリックします。
クラス名にHelloWorldController
と入力します。
HelloWorldController
package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HelloWorldController { @GetMapping(value = "/") public String index(Model model) { String message = "ハローワールド"; model.addAttribute("message", message); return "hello-world"; } }
テンプレートファイルを追加する
templatesフォルダを右クリックし、メニューのNew
→ Other...
をクリックします。
入力フィールドに"html"と入力し、検索結果に表示されたHTML Fileを選択して、Nextボタンをクリックします。
テンプレートファイル名にhello-world.html
と入力します。
hello-world.html
<!DOCTYPE html> <html lang="ja" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Hello World</title> </head> <body> <div> <h1 th:text="${message}"></h1> </div> </body> </html>
アプリケーションの実行
アプリケーションの実行方法にもいくつか手段があります。
Eclipseから実行する
- 1つ目は
DemoApplication
クラスを右クリックし、Run AS
→Java Application
もしくはSpring Boot App
をクリックする方法。 - 2つ目はプロジェクト名を右クリックし、
Run AS
→Spring Boot App
をクリックする方法。
アプリケーションを実行すると、EclipseのConsoleに起動メッセージが出力されます。 Consoleの最後の方に"Started DemoApplication in 1.918 seconds"のようなメッセージが表示されていればアプリケーションの起動は成功です。
2020-03-16 17:29:53.264 INFO 9184 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2020-03-16 17:29:53.425 INFO 9184 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2020-03-16 17:29:53.429 INFO 9184 --- [ restartedMain] com.example.demo.DemoApplication : Started DemoApplication in 1.918 seconds (JVM running for 2.803)
この方法でアプリケーションを実行すると、次からEclipseのメニューバーのRunアイコンから簡単に実行できます。
Mavenコマンドで実行する
3つ目はMavenコマンドで実行する方法です。コマンドプロンプトでプロジェクトディレクトリを開き、下記のコマンドを実行します。 この方法でもEclipseから起動したのと同じ起動メッセージが出力されます。
mvnw spring-boot:run
jarファイルを実行する
4つ目はビルドして生成したjarファイルを実行する方法です。 以下はプロジェクトディレクトリから実行する例になります。 1行目のコマンドでMavenビルドを実行してjarファイルを生成します。(jarファイルが生成されていればスキップしても構いません) 2行目のコマンドでjarファイルを実行します。
mvnw clean package java -jar .\target\demo-0.0.1-SNAPSHOT.jar
上記の方法のいずれかでアプリケーションが起動したらブラウザを立ち上げ、以下のURLでアクセスします。画面に”ハローワールド”と表示されれば成功です。
http://localhost:8080/
環境構築手順とプロジェクトの作成方法の説明は以上です。