robbie.dao.x
クラス XQuery

java.lang.Object
  拡張robbie.dao.QuerySupport
      拡張robbie.dao.x.XQuery
すべての実装インタフェース:
Query, java.io.Serializable

public class XQuery
extends QuerySupport

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
 

フィールドの詳細

queryId

protected java.lang.String queryId
Query-ID


element

protected org.jdom.Element element
SQLの情報Element


parameters

protected java.util.Map parameters
バインドパラメータMap

コンストラクタの詳細

XQuery

public XQuery()
デフォルトコンストラクタ。<p>

メソッドの詳細

setElement

public void setElement(org.jdom.Element element)
SQLを定義したElementオブジェクトをセットする。

パラメータ:
element - SQLを定義したElementオブジェクト

setParameters

public void setParameters(java.util.Map parameters)
バインド変数の入ったMapをセットする。

パラメータ:
parameters -

configure

public void configure()
実行SQLと、パラメータListを作成。

この処理は同期化されていません。


handleQueryElement

protected java.lang.String handleQueryElement(org.jdom.Element ele)
<query>、<subquery>、<case>、<default>要素からSQL文字列を生成する。

 query、switch、list、where、var、repeat、between要素、CDATAが記述可能です。
 テキストが有効なのは、query、case(default)、subquery要素の
 直下のコンテンツのみです。
 その他のwhere、switch、list要素では、テキストは許されません。
 また、その逆でquery、case(default)、subquery要素の直下ではconst要素は使用出来ません。
 const要素はwhereおよびlist要素でのみ使用できます。
 

パラメータ:
ele -
戻り値:
SQL文字列(有効なSQL文字列が生成できない場合にはnull)

handleConstElement

protected java.lang.String handleConstElement(org.jdom.Element ele)
<const>要素からSQL文字列を生成する。

 この要素は、var、repeat、betweenと同様にleaf(枝の先端)となる要素です。
 子要素は存在しません。
 また、このconst要素はwhere要素、またはlist要素でのみ指定できます。
 

パラメータ:
ele -
戻り値:
SQL文字列(文字列が生成できない場合にはnull)

handleVarElement

protected java.lang.String handleVarElement(org.jdom.Element ele)
<var>要素からSQL文字列を生成。

 var要素内には、パラメータに対応するバインド変数「?」を
 一つだけ含むテキストであることが想定されています。
 子要素がある場合には無視されます。
 また、パラメータが存在しない場合にはこの要素の存在は
 無視されるため、動的にSQLを作成する場合にはvar要素と
 where、list要素を利用してSQLを定義します。
 

パラメータ:
ele -
戻り値:
SQL文字列(文字列が生成できない場合にはnull)

handleRepeatElement

protected java.lang.String handleRepeatElement(org.jdom.Element ele)
<repeat>要素からSQL文字列を生成。

 基本的にrepeat要素はIN述語のデータを展開するときのみに使用します。
 それ以外の使用については想定していませんので注意してください。
 また、var要素でreq属性がtrueである時と同様にパラメータが存在しなければ
 エラーとします。
 

パラメータ:
ele -
戻り値:
SQL文字列(文字列が生成できない場合にはnull)

handleBetweenElement

protected java.lang.String handleBetweenElement(org.jdom.Element ele)
<between>要素からSQL文字列を生成。

 between要素はSQLのBETWEEN句のように、2つセットで指定する必要が
 ある場合に利用します。従って、varと違って2つのKEYの存在チェックを
 行なう必要があります。
 また、便宜上betweenという名前にしただけで、between句にしか使えない物では
 ありません。  
 

パラメータ:
ele -
戻り値:
SQL文字列(文字列が生成できない場合にはnull)

handleSwitchElement

protected java.lang.String handleSwitchElement(org.jdom.Element ele)
<switch>要素からSQL文字列を生成。

 switch要素内では、case、defaultしか許されません。
 テキストも無視されます。
 

パラメータ:
ele -
戻り値:
SQL文字列(文字列が生成できない場合にはnull)

handleListElement

protected java.lang.String handleListElement(org.jdom.Element ele)
<list>要素からSQL文字列を生成。

 list要素内では、テキストは許されません。
 これは、listが子Elementの結果同士を結合するための
 機能を実装するためです。
 従ってvar、repeat, const、list、switch、subqueryの要素および
 空白文字列のみを許可し、残りの要素は無視します。
 ただし、空白文字列に対してはjoin文字列で結合は行ないません。
 

パラメータ:
ele -
戻り値:
SQL文字列(文字列が生成できない場合にはnull)

handleWhereElement

protected java.lang.String handleWhereElement(org.jdom.Element ele)
<where>属性からSQL文字列を生成。

 list要素との違いは、join属性がセットされていなければ、
 値を"AND"でjoin属性をセットすることと、WHERE文字列を
 先頭に追加することです。
 

パラメータ:
ele -
戻り値:
SQL文字列

handleLikeAttribute

protected java.lang.Object handleLikeAttribute(java.lang.String likeStr,
                                               java.lang.Object valueObj)
<like>属性がある場合にはバインドする変数にワイルドカードを追加する。

変数がStringではない場合には、何もしない。

パラメータ:
likeStr -
valueObj -
戻り値:
バインド変数文字列

toString

public java.lang.String toString()
toString()のオーバライド。

オーバーライド:
クラス QuerySupport 内の toString
戻り値:
このインスタンスの文字列表記