efw4.X

SQL XML

test.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqls>
<sqls>
    <sql id="sql1" paramPrefix=":" dynamicPrefix="@">
        /**
         * this is comment
         */
        // this is comment

        SELECT field1,field2,field3 FROM table1
        WHERE
        field1=:param1
        <if exists="param2"> and field2 &lt;:param2</if>
        <if notexists="param2"> and field2 &lt; 500</if>
        <if istrue="param3.substr(0,1)=='x'"> and field3 =:param3 </if>
        <if isfalse="param3.substr(0,1)=='x'"> and field3 = 'y' </if>

    </sql>
    <sql id="sql2">
        <include groupId="test" sqlId="sql1"/>
        order by field3, @param4
    </sql>
</sqls>

SQL ID

すべての<sql>タグはidを持つ必要があります。idはSQL XMLファイル内で一意である必要があります。これはdb.selectまたはdb.changeによって呼び出されます。

パラメータ

SQL内で:paramのように書くだけでパラメータを定義できます。
<sql>タグのparamPrefix属性はオプションです。SQL内で”:”が必須文字である場合は、再定義できます。

動的SQL

@dynamicのように書くだけで、動的SQL部分を追加できます。
<sql>タグのdynamicPrefix属性はオプションです。SQL内で”@”が必須文字である場合は、再定義できます。

If

existsnotexistsistrue、およびisfalse属性を設定することにより、パラメータが存在するかどうか、またはJavaScript式がtrueかどうかに基づいて、異なる操作を実行できます。ifタグはネストできます。

Include

groupIdsqlId属性を設定することにより、既存のSQLクエリをSQLに含めることができます。

コメント

コメントはいくつかの方法で記述できます。

エンコード

”<”文字に注意してください。XML構文に準拠するため、”&lt;”と記述する必要があります。