ハンズオンニュース
- 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の "オンパレードの第一歩" で購入支払の仕様が増えていますのでチャレンジを!
