|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectrobbie.dao.QuerySupport
robbie.dao.x.XQuery
XMLに定義された情報から、動的に実行SQLとバインド変数MapListを 作成するQueryの実装クラス。
フィールドの概要 | |
protected org.jdom.Element |
element
SQLの情報Element |
protected java.util.Map |
parameters
バインドパラメータMap |
protected java.lang.String |
queryId
Query-ID |
クラス robbie.dao.QuerySupport から継承したフィールド |
prametersList, sqlString |
コンストラクタの概要 | |
XQuery()
デフォルトコンストラクタ。 |
メソッドの概要 | |
void |
configure()
実行SQLと、パラメータListを作成。 |
protected java.lang.String |
handleBetweenElement(org.jdom.Element ele)
<between>要素からSQL文字列を生成。 |
protected java.lang.String |
handleConstElement(org.jdom.Element ele)
<const>要素からSQL文字列を生成する。 |
protected java.lang.Object |
handleLikeAttribute(java.lang.String likeStr,
java.lang.Object valueObj)
<like>属性がある場合にはバインドする変数にワイルドカードを追加する。 |
protected java.lang.String |
handleListElement(org.jdom.Element ele)
<list>要素からSQL文字列を生成。 |
protected java.lang.String |
handleQueryElement(org.jdom.Element ele)
<query>、<subquery>、<case>、<default>要素からSQL文字列を生成する。 |
protected java.lang.String |
handleRepeatElement(org.jdom.Element ele)
<repeat>要素からSQL文字列を生成。 |
protected java.lang.String |
handleSwitchElement(org.jdom.Element ele)
<switch>要素からSQL文字列を生成。 |
protected java.lang.String |
handleVarElement(org.jdom.Element ele)
<var>要素からSQL文字列を生成。 |
protected java.lang.String |
handleWhereElement(org.jdom.Element ele)
<where>属性からSQL文字列を生成。 |
void |
setElement(org.jdom.Element element)
SQLを定義したElementオブジェクトをセットする。 |
void |
setParameters(java.util.Map parameters)
バインド変数の入ったMapをセットする。 |
java.lang.String |
toString()
toString()のオーバライド。 |
クラス robbie.dao.QuerySupport から継承したメソッド |
getBindParametersMapList, getSQLString |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
protected java.lang.String queryId
protected org.jdom.Element element
protected java.util.Map parameters
コンストラクタの詳細 |
public XQuery()
メソッドの詳細 |
public void setElement(org.jdom.Element element)
element
- SQLを定義したElementオブジェクトpublic void setParameters(java.util.Map parameters)
parameters
- public void configure()
この処理は同期化されていません。
protected java.lang.String handleQueryElement(org.jdom.Element ele)
query、switch、list、where、var、repeat、between要素、CDATAが記述可能です。 テキストが有効なのは、query、case(default)、subquery要素の 直下のコンテンツのみです。 その他のwhere、switch、list要素では、テキストは許されません。 また、その逆でquery、case(default)、subquery要素の直下ではconst要素は使用出来ません。 const要素はwhereおよびlist要素でのみ使用できます。
ele
-
protected java.lang.String handleConstElement(org.jdom.Element ele)
この要素は、var、repeat、betweenと同様にleaf(枝の先端)となる要素です。 子要素は存在しません。 また、このconst要素はwhere要素、またはlist要素でのみ指定できます。
ele
-
protected java.lang.String handleVarElement(org.jdom.Element ele)
var要素内には、パラメータに対応するバインド変数「?」を 一つだけ含むテキストであることが想定されています。 子要素がある場合には無視されます。 また、パラメータが存在しない場合にはこの要素の存在は 無視されるため、動的にSQLを作成する場合にはvar要素と where、list要素を利用してSQLを定義します。
ele
-
protected java.lang.String handleRepeatElement(org.jdom.Element ele)
基本的にrepeat要素はIN述語のデータを展開するときのみに使用します。 それ以外の使用については想定していませんので注意してください。 また、var要素でreq属性がtrueである時と同様にパラメータが存在しなければ エラーとします。
ele
-
protected java.lang.String handleBetweenElement(org.jdom.Element ele)
between要素はSQLのBETWEEN句のように、2つセットで指定する必要が ある場合に利用します。従って、varと違って2つのKEYの存在チェックを 行なう必要があります。 また、便宜上betweenという名前にしただけで、between句にしか使えない物では ありません。
ele
-
protected java.lang.String handleSwitchElement(org.jdom.Element ele)
switch要素内では、case、defaultしか許されません。 テキストも無視されます。
ele
-
protected java.lang.String handleListElement(org.jdom.Element ele)
list要素内では、テキストは許されません。 これは、listが子Elementの結果同士を結合するための 機能を実装するためです。 従ってvar、repeat, const、list、switch、subqueryの要素および 空白文字列のみを許可し、残りの要素は無視します。 ただし、空白文字列に対してはjoin文字列で結合は行ないません。
ele
-
protected java.lang.String handleWhereElement(org.jdom.Element ele)
list要素との違いは、join属性がセットされていなければ、 値を"AND"でjoin属性をセットすることと、WHERE文字列を 先頭に追加することです。
ele
-
protected java.lang.Object handleLikeAttribute(java.lang.String likeStr, java.lang.Object valueObj)
変数がStringではない場合には、何もしない。
likeStr
- valueObj
-
public java.lang.String toString()
QuerySupport
内の toString
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |