2009-01-01から1年間の記事一覧

EzJDBCはレスポンスが良いのです( ̄0 ̄)b

本日はEzJDBCのレスポンスについて説明しようと思います。EzJDBCは照会のレスポンスにこだわって開発しました。JDBCが1とするとEzJDBCは1.2倍になります。ほぼJDBCと同じといって良いのではないでしょうか(言いすぎ?)下記のテーブルの全レコード(500万件)…

EzJDBCで「CASE演算子」始めました(^^)

以前「EzJDBC機能強化2」で書いていたCASE演算子をEzJDBCで実装しました。一時はタイプセーフEnumを利用すればCASE演算子は不要なのではないかとも考えたのですが、以下の様なCASE演算子の場合はEnumで対応するのは面倒かなっと思い、CASE演算子はあった方が…

EzJDBCで「GROUP BY」始めました(^^)

本日はEzJDBCで「GROUP BY」する方法について説明したいと思います。ORDERテーブルとORDER_ITEMORDERを結合し、お客様ID毎の請求合計額を求める場合を例に説明いたします。 // ORDERテーブル情報インスタンス生成 ORDER OD = new ORDER(); // ORDERとORDER_I…

こだわりは良い物?悪い物?

職人気質の「こだわり」は、素晴らしい!と称賛さる場合が多いが、実質その気質を継承している人は少なくなっている。その反面「こだわり」を売りにして、利益を上げている会社(業界)が存在するのも事実だ。。。 この場合、こだわりの希少価値が利益につな…

EzJDBCへの質問と返答/備考録

社内からEzJDBCの質問があったので、質問と回答をとめたものを備考録としてメモメモします。 Q1.EzJDBC#relationする場合、個別にORDER BY句オプションが追加できればいいと思います。 A1.個別にORDER BY句オプションというのは、以下の様なことでしょうか?…

EzJDBCで結合した時の自動バインディングの秘密

EzJDBCの自動バインディングの方法は前回の「EzJDBCの自動バインディングの秘密」で説明いたしました。今回は、テーブルをJOINした結果をエンティティにマッピングする場合の自動バインディングについて説明します。以下の関係のテーブルを結合した結果を例…

EzJDBCとS2JDBCのイテレータ機能の違い

今回は、EzJDBCとS2JDBCのイテレータ機能を比較してみようと思います。 イテレータ機能は皆さんご存知の通り、テーブルの照会結果をList等で一括に取得する方法とは異なり、照会結果を1レコードづつ取得する方法です。 それでは早速それぞれのO/R マッパーの…

EzJDBCをJava1.6に対応して良かった(^^)

EzJDBCをJava1.6に対応してから可変長引数とGenericsの便利さにやられっぱなしです。Java1.4の開発には、もう戻れません><

EzJDBCの自動バインディングの秘密

EzJDBCで如何にして、テーブルのデータをエンティティにマッピングしているのか、技術的な面について説明したいと思います。 EzJDBCはテーブルの照会結果をEntityにマッピングするコードは下記のようになります。 例:CUSTOMERテーブルから名前(NANE)が"Taka…

EzJDBCのSQL自動生成機能の弱点と克服方法!

本日は、EzJDBCのSQL自動生成機能の弱点について説明したいと思います。その弱点とはSQL自動生成機能はSQLのカスタマイズが出来ない事にあります。例えば、以下の関係の2テーブルが存在したとします。 【テーブル】 1.CUSTOMERテーブル 2.ORDERテーブル【テ…

EzJDBC取得する列を限定する方法/selectメソッド始めました^^

以前「EzJDBCで取得する列を限定する!」で説明した通り、EzJDBCで取得する列を限定方法はEzJDBC#includesメソッドを利用していましたが、includesメソッドをやめて、EzJDBC#select()メソッドで取得する列名を限定するようにしました。 下記にサンプルコード…

EzJDBCのEntity自動生成の拡張機能!

こんにちは、Entityの自動生成ってフレームワークに依存した感じですっきりないよねとEclipseに語りかけてはコンパイルエラーを出している高橋ですm(__)m 本日は、そんなEntityの自動生成を開発者が自由にカスタマイズ出来る機能について説明したいと思い…

僕がSQLを意識しても良いと思う理由(わけ)

わたしは、以前からO/RマッパーはSQLを意識しても良いとおもっています。 今もその気持ちには変わりはありません。しかしナカナカ同意は頂けないのが事実です。 だからと言って「そーすか、やっぱ、そーすか、じゃSQLを隠ぺいしましょ」と言ってはいけないと…

EzServletのHTMLテーブル拡張

id:TsutomuUchimaさんの下記のエントリで便利な機能を知ったのでEzServletに取り込んでみました。以前から(<table>タグを含んだ)画面のスクロールをどうにかしなければと考えていたものの放置していた内容だけにドンピシャの内容でした。 テーブルのヘッダを固定し</table>…

EzServletの自動生成クラスをリファクタリング

こんにちは、EzServletのControllerのソースが今一煩雑でなんとかしなければと考えながらも試行錯誤しているうちに、いつの間にかお酒に溺れいる高橋です。 さて今回は、EzServletの自動生成されるコントローラークラス(ソース)をリファクタリングした結果…

EzServletでクラスの命名規則を設定する方法

こんにちは、日夜、開発が楽になるFwはどんなものなのかと考え夜も眠れない日々を繰り返した挙句、お酒におぼれている高橋ですm(__)mさて、今回はプロジェクト毎にクラス名の命名規則を設定する機能について説明しようと思います。 まずは、EzServlet(仮名…

EzJDBC(EzJRAP)のcountメソッドの2つの意味!

こんにちは、常々O/RマッパーはSQLを意識させても良いのではないか!と考えているのですが、なかなか理解されない世界に嫌気をさし、空気が読めるEclipseと会話している高橋ですm(__)m EzJDBC(EzJRAP)では件数を取得するcountメソッドがありますが、このメ…

そろそろEzJDBCの正式名称を決めよう!

そろそろEzJDBCの正式名称(クラス名)を決めなくては。。。まぁクラス名を変えるだけなので大した手間ではないのですが。。。 EzJRAP( いーじー・じぇーらっぷ )なんてどうだろうか?EzJRAP : 「Easy JDBC for RDB Access Programming」...うわっ!すっごく微…

EzJDBCで取得列名を変更する方法。

EzJDBCでは、照会結果を格納するクラスは以下の2通り存在ます。 1.テーブルに対応したEntity(pluginにより自動生成される) 2.開発者によって作成されたBean 1.の場合はテーブル列名とEntityのプロパティ名(テーブル列名のキャメル記法)が一致しますが、2の場…

EzServlet妄想/JSP,HTMLテンプレート無しで動的ページを作成する方法!

仮にJSPもHTMLテンプレートも利用しないで動的ページを作成するには、HTML(Form)クラスを作成すれば良いのではないか! そうすれば完璧なJavaによる動的ページが作成できるしね!ソースは以下の感じ。。。 // HTMLインスタンス生成 Html html = new Html(); …

EzJDBC機能強化2

下記の様なCASE文を含むSQLをEzJDBCで実装しようとするとどうなるか? SELECT *, CASE WHEN AGE >=20 THEN '成人' ELSE '未成年' END AS 項目名 FROM CUSTOMER CS EzJDBCでCASE文を実装すると、こんな感じだろうか(・・? // メインテーブル情報インスタン…

日本人だからなのか?それとも自分の問題か?

かなり前に「"".equals(value)」か「value.equals("")」の問題が取り上げられていた。 この時は、各所で色々な意見が飛び交っていたが、結果的には「"".equals(value)」の方が優勢だった気がする(個人的感想)。 でも何故か「"".equals(value)」がなじめな…

EzJDBCでConnectionを取得する方法!

O/Rマッパーとして、いざと言う時にConnectionが利用できるか否かは大きな問題です。 今回はEzJDBCからConnectionを取得する方法を説明します。 正確には、EzTxクラス(トランザクション管理クラス)により、取得することが出来ます。 EzTxはConnectionを取得…

EzJDBCの機能強化を進めよう。

次はEzJDBC#breakFieldメソッドとEzJDBC#nextDataExistメソッドの実装だな。。。 // ORDERとCUSTOMERを結合し指定した名前を含むデータを照会します。 List list = EzJDBC.from(OD).join(OD.CS) .where(OD.CS.name.like("%takahasi%")) .orderBy(OD.CS.name.…

JPAのCriteriaか(--;) vol.2

id:hayasshさんの「2009-10-28 - ひたすらプログラミング日記」を読んで、同等の事をEzJDBCで行った場合と比較してみました。。。 以下のSQLをJPA 2.0で実装した例を見てみましょう。 今回は結合も無い単純なSQLですが、pointは抽出条件の「where A and(B or…

JPAのCriteriaか(--;)

id:da-yoshiさんの「GlassFish V3 b67を使ってJava Persistence 2.0を試す - TYAGE EMOTION」を読んで、同等の事をEzJDBCで行った場合と比較してみました。。。JPAのタイプセーフなCriteriaです。下記のソースを見てください。何が書いてあるかさっぱり分か…

EzJDBCで仮想テーブル情報クラスを作る意味

EzJDBCでは「仮想テーブル情報クラス」を簡単に作成する事が出来ます。通常テーブルは正規化されますので、トランザクションテーブルとマスタテーブルに分類されます。例えば、注文(ORDER)テーブルと顧客(CUSTOMER)テーブルがあった場合、注文テーブルには顧…

EzJDBC-FileとFreeではrelationメソッドが利用できない。。。

EzJDBCではテーブルにアクセスする方法が3タイプ存在します。 1.Auto SQL自動生成 2.File SQLファイル 3.Free SQLフリーフォーマット 詳細は「2009-10-23 - T.RYoken がんばる日記 / TryGun blog」を参照して下さい...m(__)m で、EzJDBCはrelationというメ…

EzJDBCの第3の機能!

これまで、EzJDBCの下記の2つの機能について説明してきました。 1.SQL自動生成機能(EzJDBC-Auto) // メインテーブル情報インスタンスを生成します。 CUSTOMER CUS = new CUSTOMER(); // CUSTOMERテーブルとORDERテーブルを結合しデータを取得します。 List…

HTMLのボタンはタグだよね!

今ならHTMLのボタンは<button></button>タグを利用しますよね…(^^)という事で、EzServletで<button></button>タグを利用すれば動的に名称を変更する事ができます。 そんなの当たり前とか言われそうですが…(^^;) 1.Controllerでボタンの名称を設定する場合は下記の通りです。 Hoge.html <button name="execute"><tg:out name="buttonLabel">ボタン</tg></button>…