1. Saayaman

    Posted

    Saayaman
Changes in title
+[java] MySql Workbenchを使ってモデルを自動作成する
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,93 @@
+MySqlのデータベースを扱いたい場合はWorkbenchを使うといいよ!
+と言われたので試してみました。
+モバイルアプリ向けではないのですが、自分はモバイルメインなので、javaで試してみてます。
+
+
+## [MySql](https://www.mysql.com/)ってなに?
+
+オープンソースなデータベース管理システムで、Webアプリを作る上では一番使われているデータベースです。
+
+### 特徴 
+[こちらを参照](http://www.sejuku.net/blog/9021)
+ - 小さいアプリから大きいアプリまで拡張可
+ - Linux、Mac、Windowsなどを問わず動作する
+ - 「SSH」や「SSL」といったセキュリティ技術をサポートしている
+ などなど
+ - バックアップ機能やリカバリー機能など、いざというために大事なデータを守ることができます。
+
+## MySql Workbench ってなに?
+
+MySqlのデータベースを扱う上でのスーパーヘルパーです。
+**データベースのデザイン**をしたり、それを使って**自動的にデータベースを作成**したり、クエリできたり、**パフォーマンスチェック**できたりします。
+
+Schema,Table,Dataを作成するには、**A.MySQL Scriptをコードで書く(もしくは読みこむ)**か, **B.マニュアルにボタンをポチポチ押して作成する**,のどちらか選べます。
+
+<img width="527" alt="Screen Shot 2017-09-01 at 11.50.30 AM.png" src="https://qiita-image-store.s3.amazonaws.com/0/158705/824a53c2-913e-0dc3-2f61-dfc5bca9f245.png">
+
+## MySql Workbenchのセットアップ
+
+1. MySql Workbenchを[ダウンロード](https://www.mysql.com/products/workbench/)してください。
+2. MySql Serverを立ち上げる。
+自分はMampを使いました。(Start Serverボタンを押せばOK)
+<img width="541" alt="Screen Shot 2017-09-01 at 11.54.58 AM.png" src="https://qiita-image-store.s3.amazonaws.com/0/158705/892e047b-77a3-02da-f3ea-bc7b89265310.png">
+
+
+3. MySql Workbenchを開いて初期画面に行く
+MySql ConnectionにLocal instanceを一つクリックして、ポップアップでパスワードを催促されたら、MAMPが立ち上がっている証拠です。パスワードはMAMPのデフォルトでrootなので、入力してOK
+<img width="731" alt="Screen Shot 2017-09-01 at 3.54.13 PM.png" src="https://qiita-image-store.s3.amazonaws.com/0/158705/55d8c168-87c6-45d8-93ef-d5f20d6d9309.png">
+
+Query入力タブがデフォルトで開いているはずです。それぞれのボタンをさらっと説明↓
+現在は何のデータベースも読み込んでも作成してないので、クエリにコードを書いても何も出てきません。
+
+<img width="758" alt="Screen Shot 2017-09-01 at 5.28.30 PM.png" src="https://qiita-image-store.s3.amazonaws.com/0/158705/ffec200d-1f0b-c19f-b93a-398c61781690.png">
+
+
+
+## A. MySQL Script(コード)からSchemaとテーブル作成してみる
+
+[サンプルコード](https://github.com/Saayaman/JAVA/tree/master/Qiita_codes/database)をアップしたので、ダウンロードしてご自由にお使いください。
+
+ - [ 1 ] まずはSQLファイルを開いて、サンプルコードの1-employees.sqlを開いてください。
+(もしくは新規作成してコードを貼り付けてもよいです)
+
+ - [ 2 ] あとは⚡️ボタン(雷)を押して実行する。結果が全て緑だったらSchemaと空テーブルが成功です
+
+<img width="905" alt="Screen Shot 2017-09-01 at 5.37.02 PM.png" src="https://qiita-image-store.s3.amazonaws.com/0/158705/e6952c73-48d2-c944-9098-833710b9ac7f.png">
+
+ - [ 3 ] 空テーブルの中にデータを流し込む
+あとのコードを全部同じように開いて、実行(⚡️)してください。かなり重いです、読み込みに時間かかります。
+
+ - [ 4 ]データが入っているか確認
+ とりあえずデータが入ってるか確認するには、最初に現れたQuery1 タブに適当にコードを書けばよいです。
+ <img width="419" alt="Screen Shot 2017-09-01 at 5.42.28 PM.png" src="https://qiita-image-store.s3.amazonaws.com/0/158705/8aa1efdc-b072-f17d-13f6-6a3b714bc24e.png">
+
+
+ - [ 5 ] MySQLモデルを作成する
+MySQLでいうモデルとは、EER Diagramのことを指しているようです。
+上記のように、コードでデータベースを作ると、自動的にEER Diagramを作成してくれます。
+Databases > Reverse Engineer を選択して、
+あとは作成してくれるまで Continue をポチポチ押していきます。
+LocalHostのパスワードを聞かれたら、最初と同じようにMAMPのデフォルトは**root**です。
+
+<img width="455" alt="Screen Shot 2017-09-01 at 12.13.32 PM.png" src="https://qiita-image-store.s3.amazonaws.com/0/158705/8ec71346-e501-c96f-d702-b42fda381f45.png">
+
+
+- [ 6 ] モデル作成できたらこんな感じ
+<img width="907" alt="Screen Shot 2017-09-01 at 6.00.34 PM.png" src="https://qiita-image-store.s3.amazonaws.com/0/158705/e9a3630a-4c21-51d7-5ef2-dd1fc7ce6430.png">
+
+**EER Diagram**を見ると、テーブルの関係性が一目瞭然なので便利です。
+(One-to-one, one-to-many, many-to-manyの関係性)
+
+B. EER DiagramからSchemaとTableを作成する
+
+コードからEER Diagramが作成できるように、EER DiagramからSchema, Table等も作成できます
+EER Diagramでモデルを作成したら、
+
+Database > Synchronize Model を選択してください。
+
+<img width="404" alt="Screen Shot 2017-09-01 at 12.12.57 PM.png" src="https://qiita-image-store.s3.amazonaws.com/0/158705/d8d7eb2e-d2a6-293c-4bbe-bb47b3171d67.png">
+
+
+
+
+### とりあえず、ここまで!