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

なかなか強烈な一言を頂戴しました。。。

Aさん「なんか最近O/Rマッパーとか一所懸命作っているだってね」わたし「はい...(^^)」Aさん「そこでチョッと聞きたいんだけど、GAE/Jとか知ってる?」わたし「はい...(--;)」Aさん「そのGAE/Jとかで開発するようになったら、開発中のO/Rマッパーは使えな…

EzJDBCはキャストが不要になりました。

EzJDBCは、Java 6に対応しましたので、キャストが不要になりました。下記の照会系のソースで説明します。Java 1.4対応版 EzJDBCで照会した場合 // メインテーブルとなるお客様テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // お客様と注…

タイプセーフなEzJDBCは直接することを推奨します

取り急ぎ思ったことだけ。。。DAOの皮をかぶったEzJDBCは魅力がない(薄い)気がするので。。。EzJDBCは「直接利用することを推奨」します。( ̄O ̄)/いったい何の表明なのでしょう(・・? 決してMVCモデル...カビが生えたもでるなんていらねーや!的な発言…

後輩にJava式SQLは難しいと言われた><

昨日、会社の後輩にJava式SQLは難しいですよね。。。と言われた。 何故?と理由を聞いてみた。。。 彼女曰く、素のSQLであればtoolを利用して実際に実行し、結果を確かめられるため素直に受け入れる事ができるが、Java式SQLだと利用したいSQLをJavaで記述す…

Entityの変更をDB(TABLE)に反映する機能は必要なのか?

昔から定型処理をなくすためDB(TABLE)のメタ情報からEntityクラスを自動生成する機能は沢山あった。しかし、この自動生成には問題があり、色々な解決方法で対応されてきた気がする。 その問題というのが、DB(TABLE)の変更に伴うEntityの再作成にあった。DB(T…

EzJDBCでJOIN結果をEntityの親子関係にセットする方法!

今回はEzJDBCでテーブル結合した結果をリレーション形式で取得する方法について説明したいと思います。 リレーション形式って...( ̄口 ̄|||)と引かれている方も多いでしょうが、要は、JOINしたテーブルの照会結果をフラットに取得するか!Entityの親子関係…

はてなダイアリー市民

はてなダイアリー市民「シルバー」になりました。本日が100日目の日記だったわけです(^^)..パチパチ

EzJDBCのscaffold(プラグイン)です!vol.2

EzJDBCで利用する「テーブル情報クラス」の結合(JOIN)の設定の仕方について説明したいと思います。結合(JOIN)の設定は、前回説明したテーブル定義書に付加情報をつけるだけでokです。 前回は下記の「お客様(CUSTOMER)テーブル」定義書を作成しました。例:お…

EzJDBCのscaffold(プラグイン)です!

EzJDBCで利用する「テーブル情報クラス」と「エンティティ」を自動生成するEclipse plugin(TRYGENE)について説明したいと思います。テーブル情報クラスは下記のソースのfromメソッドで設定する「CUSTOMER」であり、エンティティはfindメソッドで設定する「Cu…

EzJDBCで利用可能な比較演算子!

[追記]表の12番目に「動的に比較演算子を設定」するメソッドの説明を追記しました。 EzJDBCで利用可能な比較演算子について説明したいと思います。現在利用可能な比較演算子は以下の11種類です。 比較演算子 method 補足 1= eq(値) 2!=ne(値) 3> gt(値) 4>=g…

EzJDBCで複雑な抽出条件を設定する方法!

EzJDBCでは下記のような複雑(?)な抽出条件を設定する方法を説明します。 WHERE 住所 like 'TOKYO%' AND (性別='男' AND 年齢30 OR 性別='女' AND (年齢20 OR 年齢>60)) // テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // CUSTOMERテーブ…

EzJDBCでiteratorを利用して更新する方法!

EzJDBCでは照会結果を1レコード毎に取得し更新する事ができます。 // トランザクション開始 EzTx.begin(); // テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // CUSTOMERテーブルを照会 EzJDBC jdbc = EzJDBC.from(_CS).where(_CS.NAME.li…

EzJDBCを利用すると生産性が向上する理由!

社内向けのエントリー。。。 EzJDBCを利用すると生産性が向上します。。。おそらく現在の2倍〜3倍は硬い!!!では何故?EzJDBCを利用すると生産性が向上するか!の理由の一部を説明したいと思います。。。 以下のソースを記述するのに、キーボードを叩く回…

EzJDBCでロックを指定する方法!

EzJDBCでロックする参照を行う方法は、無敵に簡単です(日本語が変だ)。ロックの種類は、プロジェクトまたはユースケースによって異なると思います。そんな場合にもEzJDBCは対応います。1.プロジェクト単位で設定したロックを利用する場合 EzTx.propertie…

EzJDBCで複数DBに接続する方法

EzJDBCで複数のRDBにアクセスする方法は、無敵に簡単です(日本語が変だ)ずばりこれだけ。。。 // JDBC接続の場合 EzJDBC jdbc = new EzJDBC("DRIVER","URL","USERID","PASSWORD")... // Datasource接続の場合 EzJDBC jdbc = new EzJDBC("datasourceキー").…

EzJDBCで件数を取得する!vol.2

以下のエントリ「EzJDBCで件数を取得する!」に対して、内輪から同じ事を2度書くのは生産性が良くないとの指摘を受けたので補足説明を…えーと、EzJDBCでは最後のメソッド(今回でいえばfindやcount)が呼び出された時にSQLを生成するので、同じ内容を何度も記…

EzJDBCで件数を取得する!

id:hiro_nemuさんのblogで、以下のエントリを見つけたのでEzJDBCの場合を書いてみる。。。 S2JDBCで件数を取得する(SELECT COUNT(*))ページング処理するときlimit, offsetを指定したデータ取得用SQLと、総件数を取得するSQLってSQL自体大体同じ内容なので、…

新人教育

新人教育について。。。今年度の新入社員は配属されてから、もう半年たとうとしている。。。良いのか悪いのかは分からないが、ほとんどフレームワークを利用しないで研修用のプログラム開発を進めてもらった。目的は様々な機能を自分で実装し、どの様にすれ…

「Google講演会@東工大のおしらせ」だそうです。

id:masataka_kさんからの告知です。コピペしておきました(^^) Google VP 講演会主催: 東京工業大学 GCOE 計算世界観・学術国際情報センター日時: 9月25日(金) 10:30-12:00場所: 本館4階第一会議室(410号室)詳細: http://www.is.titech.ac…

EzJDBCで妄想してみた(^^;)

EzJDBCをバッチ系処理(大量データを取り扱う処理)でもストレスなく利用する方法を検討中。。。 イメージは以下のような感じ…1.通常の照会と同様にEzJDBCを利用してテーブルを照会するロジックを記述。 2.EzJDBC#.create(仮名)メソッドを呼び出し、テンポラリ…

SQLのOR句にの取り扱いについて!

Javaの国産O/Rマッパーでは、かなり有名な「DBFlute」の開発者であるid:jfluteさんのblogで、仕様再検討の一つとしてOR句をサポートの要否についてのアンケートをとられています。その中で、衝撃的な内容が…><私が関わったプロジェクトでは、悲しいかなOR…

Domaがすごいらしい。。。

JavaのO/Rマッパーと言えば「Hibernate」「TopLink」「JPA」に「iBATIS」等などあり、国産では「S2Dao」「S2JDBC」そして「DBFlute」と素晴らしいFwが数多くあります。。。そんな中「2009 Seasar Conference」で注目を浴びたのが「Doma」のようです。開発者(…

EzJDBCのEXPORT機能で抽出条件を指定する方法!

EzJDBCのEXPORT機能では抽出条件を指定することが出来ます。指定の方法は通常の照会系と同様です。簡単ですね...(^^) // EXPORTするテーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // 削除コードがNULLのデータをEXPORT boolean result = n…

EzJDBCでテーブルのIMPORT,EXPORTする機能!

題の通りの機能です(^^; // CUSTOMERテーブルをEXPORT boolean result = new EzJDBC().from(new CUSTOMER()).exportFile("出力ファイルPATH"); // CUSTOMERテーブルにIMPORT boolean result = new EzJDBC().to(new CUSTOMER()).importFile("入力ファイル…

テーブル更新時の自動セット項目について考えてみた!

EzJDBCをタイプセーフに記述するためのテーブルメタ情報クラスのプロパティ(列情報)にinsertAutoSetWhenNull(...)メソッドなどつけると便利なのだろうか(・・? 例えば以下のような感じ… /** CUSTOMERテーブルのメタデータクラス */ public class CUSTOMER …

EzJDBCでキャッシュする方法!

EzJDBCでは照会結果をキャッシュする機能が存在します。キャッシュするには「EzJDBC#cache()」メソッドで指定します。 // テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // CUSTOMERテーブルを照会するJDBCインスタンスを生成します EzJDB…

EzJDBCでEntityのプロパティーが特定値の場合は更新対象外にする方法

テーブルを更新(update)する際に、特定値(null等)の場合は更新対象外にしたい場合があるかと思います。その様な時、EzJDBCではexcludeValuesメソッドを利用します。 // テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // Entityのプロパテ…

EzServletでエラーメッセージを「吹き出し」で直感的にする方法(^^;)

小ネタですので笑ってみて下さい。。。一般的なWEBシステムでは、エラーメッセージは以下の様にHTMLの上部や下部に表示される事が多いと思います。これだと直感的に表示されているエラーメッセージが、どの項目に対するものか分かりづらくと言う問題がありま…

EzJDBCの更新系メソッドに以下の一括更新機能!

Entityを利用しないで、条件にあったデータを一括更新したい場合もあるかと思います。EzJDBCではタイプセーフに一括更新をする機能を持っています。 変更の場合は以下の様に記述 // 更新対象となるテーブル情報インスタンスを生成 _CUSTOMER CS = new _CUSTO…

災難

東西線の大遅延に巻き込まれて動けない><しかも、一度駅の外に出たら入れてもらえなくなった...orz