EzJDBC

EzJDBCいらなくね><

本日は、相変わらずどうでもよい情報を紹介したいと思います。 JavaコードでタイプセーフなSQLを記述できるオープンソースのフレームワークを見つけましたのでご紹介いたします。 そのフレームワークの名前は「jOOQ」といいます。 だらだら説明するよりも、…

EzJDBCで個別関数サポートするRDBMSは6種類に限定!

EzJDBCでは個別の関数にも対応しています。 対応するRDBMSは以下の6種類です。 1.Oracle 2.SQLServer 3.DB2 4.MySQL 5.PostgreSQL 6.Derby 一般的なSQLであればJDBCが提供されているRDBMSであればEzJDBCは利用可能です(^^)

EzJDBCのSQL自動生成機能に対する大口を反省して…

以前「大半のSQLはEzJDBCのSQL自動生成機能で作成可能」と大口をたたいた高橋です...m(__)m その責任を取るべく、現在EzJDBCの機能強化を行っています。 EzJDBCは、JDBCの煩雑な作業を完全に隠蔽し、利用者が開発に専念できるORマッパーです。 大半のSQLは…

EzJDBCのコード補完機能/今更ですがvol.2

今回ご紹介するのは、EzJDBCのコード訪韓機能についてです。 今までも何度かEzJDBCはコード補完を利用するとほとんどタイプ(記述)することなくコードがかけますよ。と発信してきましたが、今回はもう少し具体的な説明をしたいと思います。 EzJDBCはJava1.6…

EzJDBCのコード補完機能/いまさらvol.2

今回ご紹介するのは、EzJDBCのコード訪韓機能についてです。 今までも何度かEzJDBCはコード補完を利用するとほとんどタイプ(記述)することなくコードがかけますよ。と発信してきましたが、今回はもう少し具体的な説明をしたいと思います。 EzJDBCはJava1.6…

EzJDBCのテーブル結合方法と種類/今更ですが...

こんにちは、最近、6つのRDBMSとたわむれている高橋です。 そんな私が本日ここに各内容は、凝りもせずにEzJDBCの結合についてです。 私が今まで書いてきたEzJDBCを利用したテーブル結合のサンプルソースは以下のようなものでした。 CUSTOMER(CS), ORDERS(OD)…

EzJDBCで危険な香りのするSQLを検知する機能!vol.2/調子に乗って...

こんにちは、EzJDBCはSQLを意識したO/Rマッパーなので、既存のSQLの知識もいかせて良いですよーとほざいては空ぶってばかりいる高橋です。 そんな私が、今回ご照会するのはEzJDBCで危険な香りがするSQLを検知する機能 VOL.2 です。 ところで、危険な香りがす…

EzJDBCで危険な香りのするSQLを検知する機能!

こんにちは、最近日記からすっかりナリを潜めていた高橋です。 別に誰からも相手にされないからといってスネていた訳ではなく、今度仕事で利用する某社のJavaフレームワークを調査・学習していたため、EzServlet&EzJDBCの開発があまり進まなかっただけです。…

何故だ〜!!!

こんにちは、JDBC関連のプログラムばかり作っては捨て、作っては捨ての作業を繰り返しトライ&エラーのスペシャリストになりつつある高橋です。トライ&エラーのスペシャリストって、たんなるダメダメプログラマーなんですけどね...(^^;) 以前「夢を見た…

花見川諸島で何が悪い!

日本のアーキテクチャは、ガラパゴス化されているため世界標準じゃない。世界から遮断された現状では、今以上の発展はありえない。 とかいっている奴は、勘違いしている。 発展しない理由が、ガラパゴス化によるものなんて、まったく本質ではない。 発展しな…

EzJDBCで特定項目のみ更新する方法

今回は、EzJDBCを利用してEntityの内容をテーブル更新する際に「特定項目」のみ更新する方法について記述します。単純に考えれば、以下の3パターンが考えられます。1.更新前の値と更新用の値を比較し、事なった項目のみ更新を行う。 // 更新対象となるORDER…

EzJDBCの照会結果格納Beanへの自動コンバート機能

本日は、EzJDBCがテーブルの照会結果をEntity(Bean)にbindする機能について説明したいと思います。 今まで特に説明のなかでふれてこなかった事ですが、既に理解されている方も多いかと思います。 まず、EzJDBCではテーブルのレコード結果を格納するEntityま…

EzServlet,EzJDBCの開発ツール

オレオレフレームワークである「EzServlet」と「EzJDBC」には、開発を支援するplugin「TryGen」が用意されています。今までも少し説明したことがある機能もありますが、今回からは機能別にもう少し詳しく説明していこうと思います。 まずは、「TryGen」のメ…

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を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を隠ぺいしましょ」と言ってはいけないと…

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の場…

EzJDBC機能強化2

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

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.…