org.seasar.extension.sql.SqlContext Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2004-2015 the Seasar Foundation and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package org.seasar.extension.sql;
/**
* jSQL
を実行するときのコンテキストです。 コンテキストでSQL
を実行するのに必要な情報を組み立てた後、
* getSql()
, getBindVariables()
,
* getBindVariableTypes()
で、 情報を取り出してSQL
を実行します。
* SQL
でBEGIN
コメントとEND
コメントで囲まれている部分が、
* 子供のコンテキストになります。 通常は、 WHERE
句をBEGIN
コメントとEND
コメントで囲み、
* WHERE
句の中のIF
コメントが1つでも成立した場合、enabled
になります。
*
* @author higa
*
*/
public interface SqlContext {
/**
* 名前に応じた引数を返します。
*
* @param name
* 引数名
* @return 名前に応じた引数
*/
Object getArg(String name);
/**
* 引数が存在するかどうかを返します。
*
* @param name
* 引数名
* @return 引数が存在するか
*/
boolean hasArg(String name);
/**
* 名前に応じた引数のクラスを返します。 getArg()
がnull
を返す場合があるので、
* このメソッドが用意されています。
*
* @param name
* 引数名
* @return 名前に応じた引数のクラスを返します。
*/
Class> getArgType(String name);
/**
* 引数を追加します。
*
* @param name
* 引数名
* @param arg
* 引数
* @param argType
* 引数の型
*/
void addArg(String name, Object arg, Class> argType);
/**
* 追加されたすべてのSQL
を返します。
*
* @return SQL
*/
String getSql();
/**
* 追加されたすべてのバインド変数の配列を返します。
*
* @return バインド変数の配列
*/
Object[] getBindVariables();
/**
* 追加されたすべてのバインド変数の型の配列を返します。
*
* @return バインド変数の型の配列
*/
Class>[] getBindVariableTypes();
/**
* SQL
を追加します。
*
* @param sql String
* @return コンテキスト自身
*/
SqlContext addSql(String sql);
/**
* SQL
とバインド変数を追加します。
*
* @param sql String
* @param bindVariable Object
* @param bindVariableType Class
* @return SqlContext
*/
SqlContext addSql(String sql, Object bindVariable, Class> bindVariableType);
/**
* SQL
とバインド変数の配列を追加します。
*
* @param sql String
* @param bindVariables Object[]
* @param bindVariableTypes Class[]
* @return SqlContext
*/
SqlContext addSql(String sql, Object[] bindVariables,
Class>[] bindVariableTypes);
/**
* BEGIN
コメントとEND
コメントで、
* 囲まれた子供のコンテキストが有効かどうかを返します。
*
* @return 有効かどうか
*/
boolean isEnabled();
/**
* BEGIN
コメントとEND
コメントで、
* 囲まれた子供のコンテキストが有効かどうかを設定します。
*
* @param enabled
* 有効かどうか
*/
void setEnabled(boolean enabled);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy