ハンズオンニュース
- Lasta Di に変更
- org.docksidestageに変更
- JavaEditorTemplatesを更新
- セクション4にエクササイズを追加
- 会員フォローイングと会員支払の調整
- MySQLスクリプトを改良
- PURCHASE_PAYMENT を追加
Lasta Di に変更
ハンズオン環境で利用しているDIコンテナが、Seasar から Lasta Di に変わりました。(Java8以降)
- pom.xmlを修正、Seasar関連のものを削除して、Lasta Diを追加
- maven-eclipse.bat|sh を叩く
- UnitContainertestCase の import 文を編成 (seasar 部分を lastadi に)
- src/test/resources のファイルをすべて削除、.gitkeep (空のテキストファイル) だけ配置
- src/main/resources に、app.xml, jdbc.xml, lasta_di.properties, logback.xml を追加
- basicInfoMap.dfprop 似て、targetContainer を lasta_di にして、再自動生成
pom.xmlは、以下をコピーして、該当箇所に設定しましょう。
e.g. pom.xmlのproperties @pom.xml
<properties>
<lasta.di.version>0.7.0</lasta.di.version>
...
</properties>
dependenciesは、もうまるごと差し替え。
e.g. pom.xmlのdependencies @pom.xml
<dependencies>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<!-- Main Framework -->
<!-- = = = = = = = -->
<!-- dbflute -->
<dependency>
<groupId>org.dbflute</groupId>
<artifactId>dbflute-runtime</artifactId>
<version>${dbflute.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.jdbc.version}</version>
<scope>runtime</scope>
</dependency>
<!-- lasta di -->
<dependency>
<groupId>org.lastaflute</groupId>
<artifactId>lasta-di</artifactId>
<version>${lasta.di.version}</version>
</dependency>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<!-- Partner Library -->
<!-- = = = = = = = = -->
<!-- transaction -->
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
<!-- logging -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<!-- testing -->
<!-- = = = = -->
<!-- unit test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version> <!-- is latest version without hamcrest -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.dbflute.utflute</groupId>
<artifactId>utflute-lasta-di</artifactId>
<version>${utflute.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
src/main/resources は、用意されています。
org.docksidestageに変更
エクササイズのクラスを配置するパッケージが org.dbflute から org.docksidestage に変更されました。(おるぐ、どっくさいどすてーじ)
org.dbfluteだと、DBFluteランタイムのパッケージとアプリを想定したパッケージが同じになり、 参考実装として紛らわしくなってしまうため、アプリを想定したパッケージをまったく別のパッケージにすることにしました。
すでに org.dbflute でハンズオンしている方は、別にそのままで構いません。
docksidestageに移行するなら
もし、移行される場合は、以下の修正をします。
- basicInfoMap.dfprop
- packageBase を org.docksidestage.handson.dbflute に修正
- log4j.properties
- Logger設定に org.docksidestage を追加
- convention.dicon
- rootパッケージを org.docksidestage.handson に修正
- Javaパッケージ
- 一斉に、org.docksidestage に変更 ※リファクタリング機能を使って
そして、manage.bat|sh の renewal (1) を実行してすべて自動生成し直し。
データベースの名前も maihamadb に
また、データベースの名前が、exampledb から maihamadb に変わっています。もし、移行される場合は、以下を修正します。
- databaseInfoMap.dfprop
- urlのDB名をmaihamadb、userとpasswordをmaihamadb
- jdbc.dicon
- urlのDB名をmaihamadb、userとpasswordをmaihamadb
- build.properties
- exampledb を maihamadb に
- maven-eclipse.bat|sh
- exampledb を maihamadb に
- DBFluteクライアント
- dbflute_exampledbディレクトリを を dbflute_maihamadb に
そして、manage.bat|sh の replace-schema (0) を実行し、テストケースも実行。
JavaEditorTemplatesを更新
(2014/09/21)
セクション1で設定した JavaEditorTemplates が更新されました。
以下の、JavaEditorTemplatesの設定ファイルをダウンロードし、import し直してください。 すべての template を選択して Remove して空っぽにしてから差し替えます(でないと二重に登録されてしまう)。
- java-editor-templates.xml
- Java8の文法で便利な補完が用意されています。
セクション4にエクササイズを追加
(2014/06/06)
区分値メソッドを使って実装に追加
セクション4の "区分値メソッドを使って実装" の部分にエクササイズを追加しました。
- 追加されたエクササイズ
- 銀行振込で購入を支払ったことのある、会員ステータスごとに一番若い会員を検索
購入支払テーブルを利用
購入支払テーブルを利用するので、以前のニュースで流れた PURCHASE_PAYMENT の追加が必要です。
会員フォローイングと会員支払の調整
セクション10が終わっている人
会員フォローイングのデータをしっかり用意しました。 セクション10の会員フォローイングのデータをコピーしてエクセルの MEMBER_FOLLOWING シートのデータを上書き貼付けして ReplaceSchema してください。
セクション11のオンパレードは続くが終わってる人
"手渡しだけでも払い過ぎてるのに未払い..." みたいな条件が追加されています。
MySQLスクリプトを改良
(2014/06/02)
MySQL用の起動バッチやログインシェルなどを改良しました。ファイルの中身を以下の内容で置き換えてください。
Windowsの場合、Eclipse 上では "右クリック - Open With - Text Editor" で開いて修正します。ただし、その後ダブルクリックしても Text Editor が開いてしまいますので、同じように右クリックから Default Editor で開き直します(実行し直します)。
起動スクリプト
起動スクリプトはこちら
e.g. boot-mysql.bat @WindowsScript
%~d0
cd %~p0
start /b cmd /c .\mysql\bin\mysqld --defaults-file=.\my.cnf -nt
e.g. boot-mysql.sh @Shell
#!/bin/bash
cd `dirname $0`
./mysql/bin/mysqld --defaults-file=./my.cnf
シャットダウンスクリプト
シャットダウンスクリプト (close-mysql.sh (Macの方) は特に何も変わりません。)
e.g. close-mysql.bat @WindowsScript
%~d0
cd %~p0
.\mysql\bin\mysqladmin --defaults-file=.\my.cnf -u root shutdown
pause
ログインスクリプト
ログインスクリプトはこちら
e.g. login-mysql-root.bat @WindowsScript
%~d0
cd %~p0
.\mysql\bin\mysql --defaults-file=.\my.cnf --user=root --default-character-set=sjis
pause
e.g. login-mysql-root.sh @Shell
#!/bin/bash
cd `dirname $0`
./mysql/bin/mysql --defaults-file=./my.cnf --user=root --default-character-set=utf8
そして、my.ini は利用されなくなりました。WindowsでもMacでも my.cnf が利用されますので、my.ini は削除しても構いません。
PURCHASE_PAYMENT を追加
(2014/06/01)
PURCHASEのone-to-manyの子テーブルとして、PURCHASE_PAYMENTを追加しました。 これにて、会員から子テーブルの子テーブルを表現することができるようになり、さらなる難しい問題を作ることができるようになりました。
まだ、セクション3までの人
以下の DDL とエクセルデータを、お手持ちのものと差し替えてください。
- playsql-createschema-ddl-1st.zip
- ReplaceSchemaで流すDDL (replace-schema-10-basic.sqlなど)
- playsql-loaddata-ut.zip
- ReplaceSchemaで登録するテストデータ (30-product.xlsなど)
したら、ctrl + shift + R の manage で、1番の renewal タスクを実行してください。
セクション4が終わってて、セクション10はまだの人
セクション3までの人の zip で DDL やエクセルを差し替えるのは同じです。
セクション4の区分値の定義に、区分値が追加されているので追加してください。 新しい区分値である PaymentMethod を追加、そして、PAYMENT_METHOD_CODE に関連付けます。
セクション8の、排他制御なしの削除のエクササイズが少し変わっています。 そのままだと (当然のことながら) 購入削除でFK制約違反になってしまいますので、頑張って削除してみましょう
セクション10が終わっている人
DB変更が終わっているので、セクション3までの人の zip の内容を差分で反映してください。
- replace-schema-10-basic.sql
- PURCHASE_PAYMENT の create 文を追加
- replace-schema-10-basic.sql
- PURCHASE_PAYMENT のインデックスを追加
- 20-member.xls の MEMBER
- 会員名称 Og2000 を "アカギ" に、アカウントを "Akagi" に
- 30-product.xls の PURCHASE
- ストイコビッチさんのデータが増えているのでコピー
- 30-product.xls に新しいシート
- PURCHASE_PAYMENT のシートをそのままコピー
また、セクション4の区分値の PaymentMethod を追加&関連付けしてください。
セクション11の "オンパレードの第一歩" で購入支払の仕様が増えていますのでチャレンジを!