2009-01-01から1年間の記事一覧
Aさん「なんか最近O/Rマッパーとか一所懸命作っているだってね」わたし「はい...(^^)」Aさん「そこでチョッと聞きたいんだけど、GAE/Jとか知ってる?」わたし「はい...(--;)」Aさん「そのGAE/Jとかで開発するようになったら、開発中のO/Rマッパーは使えな…
EzJDBCは、Java 6に対応しましたので、キャストが不要になりました。下記の照会系のソースで説明します。Java 1.4対応版 EzJDBCで照会した場合 // メインテーブルとなるお客様テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // お客様と注…
取り急ぎ思ったことだけ。。。DAOの皮をかぶったEzJDBCは魅力がない(薄い)気がするので。。。EzJDBCは「直接利用することを推奨」します。( ̄O ̄)/いったい何の表明なのでしょう(・・? 決してMVCモデル...カビが生えたもでるなんていらねーや!的な発言…
昨日、会社の後輩にJava式SQLは難しいですよね。。。と言われた。 何故?と理由を聞いてみた。。。 彼女曰く、素のSQLであればtoolを利用して実際に実行し、結果を確かめられるため素直に受け入れる事ができるが、Java式SQLだと利用したいSQLをJavaで記述す…
昔から定型処理をなくすためDB(TABLE)のメタ情報からEntityクラスを自動生成する機能は沢山あった。しかし、この自動生成には問題があり、色々な解決方法で対応されてきた気がする。 その問題というのが、DB(TABLE)の変更に伴うEntityの再作成にあった。DB(T…
今回はEzJDBCでテーブル結合した結果をリレーション形式で取得する方法について説明したいと思います。 リレーション形式って...( ̄口 ̄|||)と引かれている方も多いでしょうが、要は、JOINしたテーブルの照会結果をフラットに取得するか!Entityの親子関係…
はてなダイアリー市民「シルバー」になりました。本日が100日目の日記だったわけです(^^)..パチパチ
EzJDBCで利用する「テーブル情報クラス」の結合(JOIN)の設定の仕方について説明したいと思います。結合(JOIN)の設定は、前回説明したテーブル定義書に付加情報をつけるだけでokです。 前回は下記の「お客様(CUSTOMER)テーブル」定義書を作成しました。例:お…
EzJDBCで利用する「テーブル情報クラス」と「エンティティ」を自動生成するEclipse plugin(TRYGENE)について説明したいと思います。テーブル情報クラスは下記のソースのfromメソッドで設定する「CUSTOMER」であり、エンティティはfindメソッドで設定する「Cu…
[追記]表の12番目に「動的に比較演算子を設定」するメソッドの説明を追記しました。 EzJDBCで利用可能な比較演算子について説明したいと思います。現在利用可能な比較演算子は以下の11種類です。 比較演算子 method 補足 1= eq(値) 2!=ne(値) 3> gt(値) 4>=g…
EzJDBCでは下記のような複雑(?)な抽出条件を設定する方法を説明します。 WHERE 住所 like 'TOKYO%' AND (性別='男' AND 年齢30 OR 性別='女' AND (年齢20 OR 年齢>60)) // テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // CUSTOMERテーブ…
EzJDBCでは照会結果を1レコード毎に取得し更新する事ができます。 // トランザクション開始 EzTx.begin(); // テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // CUSTOMERテーブルを照会 EzJDBC jdbc = EzJDBC.from(_CS).where(_CS.NAME.li…
社内向けのエントリー。。。 EzJDBCを利用すると生産性が向上します。。。おそらく現在の2倍〜3倍は硬い!!!では何故?EzJDBCを利用すると生産性が向上するか!の理由の一部を説明したいと思います。。。 以下のソースを記述するのに、キーボードを叩く回…
EzJDBCでロックする参照を行う方法は、無敵に簡単です(日本語が変だ)。ロックの種類は、プロジェクトまたはユースケースによって異なると思います。そんな場合にもEzJDBCは対応います。1.プロジェクト単位で設定したロックを利用する場合 EzTx.propertie…
EzJDBCで複数のRDBにアクセスする方法は、無敵に簡単です(日本語が変だ)ずばりこれだけ。。。 // JDBC接続の場合 EzJDBC jdbc = new EzJDBC("DRIVER","URL","USERID","PASSWORD")... // Datasource接続の場合 EzJDBC jdbc = new EzJDBC("datasourceキー").…
以下のエントリ「EzJDBCで件数を取得する!」に対して、内輪から同じ事を2度書くのは生産性が良くないとの指摘を受けたので補足説明を…えーと、EzJDBCでは最後のメソッド(今回でいえばfindやcount)が呼び出された時にSQLを生成するので、同じ内容を何度も記…
id:hiro_nemuさんのblogで、以下のエントリを見つけたのでEzJDBCの場合を書いてみる。。。 S2JDBCで件数を取得する(SELECT COUNT(*))ページング処理するときlimit, offsetを指定したデータ取得用SQLと、総件数を取得するSQLってSQL自体大体同じ内容なので、…
新人教育について。。。今年度の新入社員は配属されてから、もう半年たとうとしている。。。良いのか悪いのかは分からないが、ほとんどフレームワークを利用しないで研修用のプログラム開発を進めてもらった。目的は様々な機能を自分で実装し、どの様にすれ…
id:masataka_kさんからの告知です。コピペしておきました(^^) Google VP 講演会主催: 東京工業大学 GCOE 計算世界観・学術国際情報センター日時: 9月25日(金) 10:30-12:00場所: 本館4階第一会議室(410号室)詳細: http://www.is.titech.ac…
EzJDBCをバッチ系処理(大量データを取り扱う処理)でもストレスなく利用する方法を検討中。。。 イメージは以下のような感じ…1.通常の照会と同様にEzJDBCを利用してテーブルを照会するロジックを記述。 2.EzJDBC#.create(仮名)メソッドを呼び出し、テンポラリ…
Javaの国産O/Rマッパーでは、かなり有名な「DBFlute」の開発者であるid:jfluteさんのblogで、仕様再検討の一つとしてOR句をサポートの要否についてのアンケートをとられています。その中で、衝撃的な内容が…><私が関わったプロジェクトでは、悲しいかなOR…
JavaのO/Rマッパーと言えば「Hibernate」「TopLink」「JPA」に「iBATIS」等などあり、国産では「S2Dao」「S2JDBC」そして「DBFlute」と素晴らしいFwが数多くあります。。。そんな中「2009 Seasar Conference」で注目を浴びたのが「Doma」のようです。開発者(…
EzJDBCのEXPORT機能では抽出条件を指定することが出来ます。指定の方法は通常の照会系と同様です。簡単ですね...(^^) // EXPORTするテーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // 削除コードがNULLのデータをEXPORT boolean result = n…
題の通りの機能です(^^; // 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#cache()」メソッドで指定します。 // テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // CUSTOMERテーブルを照会するJDBCインスタンスを生成します EzJDB…
テーブルを更新(update)する際に、特定値(null等)の場合は更新対象外にしたい場合があるかと思います。その様な時、EzJDBCではexcludeValuesメソッドを利用します。 // テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // Entityのプロパテ…
小ネタですので笑ってみて下さい。。。一般的なWEBシステムでは、エラーメッセージは以下の様にHTMLの上部や下部に表示される事が多いと思います。これだと直感的に表示されているエラーメッセージが、どの項目に対するものか分かりづらくと言う問題がありま…
Entityを利用しないで、条件にあったデータを一括更新したい場合もあるかと思います。EzJDBCではタイプセーフに一括更新をする機能を持っています。 変更の場合は以下の様に記述 // 更新対象となるテーブル情報インスタンスを生成 _CUSTOMER CS = new _CUSTO…
東西線の大遅延に巻き込まれて動けない><しかも、一度駅の外に出たら入れてもらえなくなった...orz