Diコンテナ使ってなくてもDIの考え方は有効だよ、という話

SeasarやSpring などのDIコンテナを使っていなくてもDIの考え方は有効です。 例えば、 public void calclateSalary(){ List<Emp> empList = dao.getEmp("本社"); for (Emp emp : empList) { if (emp.getLevel(10)){ 〜なんだかかんだか〜 } else if (〜){ 〜ああ</emp>…

イケメンスーツのためのポリモフィーズム講座

「インスタンス生成の部分のコードでは結局ifやswitchがあるじゃん」っていうお悩みに対して、どう考えればよいのだろう? これは、「if 文を書かないでも条件分岐できる」ということを知ると、視野が広がります。 例えば、 private Map<Integer,Class<? extends AbstractDataReader>> readerMap; { reade</integer,class<?>…

S2Dao-CodeGen 0.4.1をリリースしました。

前バージョンからの修正は、以下の通りです。 [DAOCODEGEN-80] - Jiemamyから入力したときに、カラムの論理名が設定されてないと、org.seasar.buri.common.util.template.exception.TemplateRuntimeExceptionが発生する問題を修正しました。 [DAOCODEGEN-81]…

S2Dao-CodeGen 0.4.0 RC2をリリースしました。

Bug [DAOCODEGEN-64] - org.seasar.codegen.lib.DateConditionElementのJavaDocの記述が誤っている問題を修正しました。 [DAOCODEGEN-65] - S2Dao-Tigerのフェッチ機能が動作しない問題を修正しました。 [DAOCODEGEN-70] - codegen-libのテスト実行時に、ロ…

<sequenceMapping> <EMP_TABLE>empNo</EMP_TABLE> </sequenceMapping>

ちょっと失礼

<component class="org.seasar.codegen.impl.CodeGenConfigImpl" > <property name="headerTemplatePath">"test/header.txt"</property> <property name="versionNoPropertyName">"versionno"</property> <property name="outputAllDaoDicon">true</property> <property name="outputDDL">true</property> </component>

S2Dao 1.0.51をリリースしました。

変更点 Bug [DAO-151] - MySQL用のページング機能(MySQLLimitOffsetPagingSqlRewriter)がバインド変数をもつSQLを考慮していない問題に対応しました。 [DAO-154] - org.seasar.dao.impl.ObjectResultSetHandlerにおいて、実際に使用しているクラスと違うク…

Seasarプロジェクトのプロダクトはバージョン番号の付け方についてポリシーが統一できてない

というのはよく言われることなのですが....*1S2Dao-CodeGenもちょっと今回はやらかした感がありますね、RCに機能追加しちゃってる^^;betaが適当でしたね...ともあれ、S2Dao-CodeGenのバージョニングについては、以下のように考えています。 マイナーバージョ…

業務連絡

次回リリースから「返り値が1件のメソッドで、SQLの実行結果が2件以上の場合」は例外をスローするようになります。 この対応のため、S2Dao 1.0.51 が必要になります。 次回か次々回までに、Maven2での生成で実スキーマからのリバースをサポートするようにな…

今日の進捗

今日は、以下の作業を片付けました。 [DAOCODEGEN-64] org.seasar.codegen.lib.DateConditionElementの JavaDocの記述が誤っている問題を修正しました。 id:jfluteさんどうもです。 [DAOCODEGEN-65]S2Dao-Tigerのフェッチ機能が動作しない問題を修正しました…

S2Dao-CodeGen 0.4.0 RC1をリリースしました。

S2Dao向けコード生成ツールS2Dao-CodeGenの0.4.0 RC1をリリースしました。http://s2dao-codegen.sandbox.seasar.org/docs/見てください、このリリースノートの項目の数(汗) Bug (DAOCODEGEN-44) - 主キーがjava.lang以外のパッケージになるクラスがあると、D…

ラストスパート

EmpTableCondition condition = new EmpTableCondition(); condition.selectEmpNo().more(7500); List<EmpTable> result = dao.find(condition); EmpTableRelationCondition conditon = new EmpTableRelationCondition(); conditon.selectEmpNo().addOrderAsc(); condi</emptable>…

ドキュメント進捗

今日は、Excelテーブル定義書のリファレンスを書きました。http://s2dao-codegen.sandbox.seasar.org/docs/howto_excel.htmlあ、あと一つ...

ドキュメント進捗

今日は、antで生成する場合のCodeGen.diconについて記述しました。http://s2dao-codegen.sandbox.seasar.org/docs/howto_codegendicon.htmlあとはExcelテーブル定義書設定リファレンスと検索条件(Condition)クラス使用方法リファレンス。大物が残ってますが…

毎度のことながら

<components> <include path="j2ee.dicon"/> <include path="internal.dicon"/> <component name="path" class="org.seasar.codegen.ant.DirectoryList" > </component></include></include></components>

ドキュメント進捗

今日は、pom.xmlの設定リファレンスを書きました。http://s2dao-codegen.sandbox.seasar.org/docs/howto_pom.html

ドキュメント進捗

今日は、生成したソースを動かす方法について書きました。http://s2dao-codegen.sandbox.seasar.org/docs/howto_running.html

XMLをHTMLに貼り付けるときにエスケープが面倒だったのでここ使いますね^^;

<repositories> <repository> <id>maven.seasar.org</id> <name>The Seasar Foundation Maven2 Repository</name> <url>http://maven.seasar.org/maven2</url> </repository> <repository> <id>maven.snapshot.seasar.org</id> <name>The Seasar Foundation Maven2 Repository(snapsh…</name></repository></repositories>

ドキュメント進捗

今日は、ドキュメントの雛形とコード生成方法についてドキュメントを書きました。 http://s2dao-codegen.sandbox.seasar.org/docs/ http://s2dao-codegen.sandbox.seasar.org/docs/howto_generate.htmlソースの方も色々いじりたいところはあるのですが、ドキ…

codegen-libのJavaDocを公開しました。

S2Dao-CodeGenで生成したソースを実行する際に必要なライブラリ、codegen-libのJavaDocを公開しました。http://s2dao-codegen.sandbox.seasar.org/apidocs/リリースに向けて、ドキュメントも整備していきます!

入手方法

ZIPアーカイブは、こちら。 http://s2dao-codegen.sandbox.seasar.org/snapshot/mavenからのライブラリ使用は、以下の通り指定してください。 〜 <repositories> <repository> <id>maven.seasar.org</id> <name>The Seasar Foundation Maven2 Repository</name> <url>http://maven.seasar.org/maven2</url> </repository> <repository> <id>maven.snaps</id></repository></repositories>…

制限

mavenから実行する場合は、DBの実スキーマからの生成は未実装です(現在実装を進めています。) また、入力フォーマットにJiemamyのERダイアグラムファイルを使用する場合は、主キーとシーケンス名のマッピングを指定できません。(これも実装を進めています)

注意点

Conditionによる検索条件の指定とメタデータを使わない初期化をサポートするために、S2Dao本体とdao.diconのカスタマイズを行っています。jarファイルは、配布zipファイル内の以下の場所に含まれています。 s2dao-codegen-core/lib/codegen-lib-0.4.0-RC1-SN…

見所

一つ目は入力ファイルとしてJiemamy(http://www.jiemamy.org)が出力するERダイアグラムファイルを指定可能になったことです。このことによってDBのスキーマ管理とDao/Entity管理を一元的に行うことができます。もう一つは検索条件の細かい指定に使うConditio…

どのように使うのか

antによる生成とmavenによる生成をサポートしています。 antはZIPアーカイブをダウンロードしてdicon/CodeGen.diconを編集、その後 ant で生成できます。CodeGen.diconの編集については https://www.seasar.org/svn/sandbox/s2dao-codegen/trunk/codegen-cor…

S2Daoの逆襲〜漢ならDaoを書け!

世間ではBigtableをはじめとするKVSの話題が華やかで、RDBを使うにしてもDomaやS2JDBCやDBFluteなどのモダンなフレームワーク全盛ですが、堅くDaoを切る開発手法も捨てがたいと思うのです。そして、S2Daoを使う上で問題となるのが、DaoやEntityの生成をどの…

PocketWifiファーストインプレッション

今までモバイル環境にはauのW05Kを使用していたのですが、MacBookProを購入したことと、auの2年縛りが解けたのを機会に、イーモバイルのPocketWifiに乗り換えました。まずこの製品の仕様として抑えておかなければならないこととして、連続通信時間4時間とい…

オブジェクト倶楽部イベントLTに登壇してきました。

1月15日にあったオブジェクト倶楽部のイベント、「アレグザンダー祭り」のイベントで登壇してきました。読書会でテスティングについて学んでみませんか?View more presentations from setoazusa.次回勉強会は2月13日(土)ですが、おかげさまで満席となりまし…

第7回 xUtit Test Patterns 読書会

第7回を迎えたにもかかわらず3分の1くらいしかすすめない(汗)この読書会、第7回が11/14に行われました。今回はid:Youchanの発表を含め盛りだくさんだったのですが、個人的には文字列比較のテストのメリット・デメリットやDBを使う場合のテスト、Erattic Test…

最近注目している技術

Jiemamy やはりDBについてまじめに考えてみたいとは思うのですが...時間とれず。 T2Framework HTTPとサーバーサイドのロジックをつなぐことに徹しているのはいい感じ。あとはこちらでValidation向けフレームワークを用意して組み込めれば実案件でもいけるの…