jp.littlesoft.sql
クラス UpdateSQL<T extends Serializable>

java.lang.Object
  上位を拡張 jp.littlesoft.data.Row<E>
      上位を拡張 jp.littlesoft.data.Params<T>
          上位を拡張 jp.littlesoft.sql.UpdateSQL<T>
すべての実装されたインタフェース:
Serializable

public class UpdateSQL<T extends Serializable>
extends Params<T>

更新SQL文実行クラス。

Update,Delete,Insert,ストアドプロシージャ,DDL文など結果を返さないSQLを実行することができます。

バージョン:
1.3.0
作成者:
LittleSoft Corporation
関連項目:
直列化された形式

入れ子のクラスの概要
 
クラス jp.littlesoft.data.Row から継承された入れ子のクラス/インタフェース
Row.RowID, Row.Status
 
フィールドの概要
 
クラス jp.littlesoft.data.Params から継承されたフィールド
SQL_PARAM
 
クラス jp.littlesoft.data.Row から継承されたフィールド
entity, status, values
 
コンストラクタの概要
UpdateSQL()
           
UpdateSQL(Connection conn)
          JDBCのコネクションを再設定します。
UpdateSQL(T... t)
          コンストラクタ。
 
メソッドの概要
 void close()
          JDBCステートメントをクローズします。
 int executeUpdate(boolean pendingCommit, boolean reuseStatement)
          SQL文を実行します。
 Connection getConnection()
          JDBCのコネクションを取得します。
 String getJDBCSQL()
          パラメータのプレースホルダがJDBC形式に変換された後のSQL文を取得します。
 String getJDBCSQL(String sql)
          検索キーなどのパラメタを解析した後のSQL文を取得します。
protected  Statement getJDBCStatement()
          JDBCステートメントを取得します。
 String getSQL()
          実行するSQL文を取得します。
 SQLAdaptor getSQLAdaptor()
          JDBCAdaptorオブジェクト取得します。
 void setConnection(Connection conn)
          JDBCのコネクションを設定します。
protected  void setJDBCStatement(Statement jdbcStatement)
          JDBCステートメントを設定します。
 void setSQL(String newSQL)
          実行するSQL文を設定します。
 void setSQLAdaptor(SQLAdaptor sqlAdaptor)
          JDBCAdaptorオブジェクトを設定します。
 
クラス jp.littlesoft.data.Params から継承されたメソッド
addColumn, addColumn, addColumn, addColumn, clearColumns, copyValues, getColumn, getColumn, getColumnCount, indexOfColumn, initializeValues, isTypedRow, names, parseSQL, setValue, toString, validate
 
クラス jp.littlesoft.data.Row から継承されたメソッド
cancelUpdates, clear, getBigDecimal, getBigDecimal, getBinary, getBinary, getBoolean, getBoolean, getByte, getByte, getDate, getDate, getDouble, getDouble, getEntity, getFloat, getFloat, getInt, getInt, getLong, getLong, getObject, getObject, getOriginalRow, getRowID, getShort, getShort, getStatus, getString, getString, getTable, getTime, getTime, getTimestamp, getTimestamp, getValue, getValue, getValueAsString, getValueAsString, handleCompatiException, isDeletionDeserved, isDeletionReserved, isEditing, isNull, isNull, isNullAll, setBigDecimal, setBigDecimal, setBinary, setBinary, setBoolean, setBoolean, setByte, setByte, setDate, setDate, setDeletionDeserved, setDeletionReserved, setDouble, setDouble, setFloat, setFloat, setInt, setInt, setLong, setLong, setNull, setNull, setObject, setObject, setShort, setShort, setStatus, setString, setString, setTime, setTime, setTimestamp, setTimestamp, setValue, setValueAsString, setValueAsString, setValueFromResultSet, startEditing
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

UpdateSQL

public UpdateSQL(T... t)
コンストラクタ。


UpdateSQL

public UpdateSQL()

UpdateSQL

public UpdateSQL(Connection conn)
          throws DataException
JDBCのコネクションを再設定します。

パラメータ:
conn - JDBCのコネクション
例外:
DataException
メソッドの詳細

setConnection

public void setConnection(Connection conn)
                   throws DataException
JDBCのコネクションを設定します。

パラメータ:
conn - JDBCのコネクション
例外:
DataException

getConnection

public Connection getConnection()
JDBCのコネクションを取得します。

戻り値:
JDBCのコネクション
例外:
DataException

getSQLAdaptor

public SQLAdaptor getSQLAdaptor()
JDBCAdaptorオブジェクト取得します。

戻り値:
SQLDataResolver JDBCAdaptorオブジェクト

setSQLAdaptor

public void setSQLAdaptor(SQLAdaptor sqlAdaptor)
JDBCAdaptorオブジェクトを設定します。

パラメータ:
sqlAdaptor - JDBCAdaptorオブジェクト

setSQL

public void setSQL(String newSQL)
            throws DataException
実行するSQL文を設定します。

実行するSQL文を文字列で設定します。
SQL文にはパラメータを含める事が可能です。パラメータの先頭には":"を指定します。
UpdateSQLはSQL分中のパラメータを解析し、必要なColumnオブジェクトを生成します。
 [例1]
  // UPDATE文を実行する。
  updateSql.setSQL("UPDATE EMP SET SAL = SAL + 10000 WHERE JOB = :JOB");
  updateSql.getColumn("JOB").setType(Column.Type.DOUBLE);
  updateSql.setDouble("JOB", 1022);
 
 [例2]
  // ストアドプロシージャを呼び出す。
  updateSql.setSQL("{call proc1(:PARAM1, :RESULT)}");
  updateSql.getColumn("PARAM1").setType(Column.Type.STRING);
  updateSql.getColumn("RESULT").setType(Operation.INT);
  updateSql.getColumn("RESULT").setParamType(Column.ParamType.OUT);
  updateSql.setSTRING("PARAM1", "xxxx");
 
 [例3]
  // ストアドファンクションを呼び出す。
  updateSql.setSQL("{:RESULT = call func1(:PARAM1)}");
  updateSql.getColumn("PARAM1").setType(Column.Type.STRING);
  updateSql.getColumn("RESULT").setType(Operation.INT);
  updateSql.getColumn("RESULT").setParamType(Column.ParamType.OUT);
  updateSql.setSTRING("PARAM1", "xxxx");
 
※前回の実行による影響を受けないようにするために、事前に定義していたパラメータセットは 初期化しています。従って、事前にパラメタを定義しても無意味です。上記の例のようにsetSQL() を実行した後に、パラメタの型を定義するようにしてください。

※前回実行したときのSQLと同じSQLが指定された場合は何もしません。

パラメータ:
newSQL - 実行するSQL文
例外:
jp.littlesoft.data.DataException - 例外発生時
DataException

getSQL

public String getSQL()
実行するSQL文を取得します。

戻り値:
String SQL文

getJDBCStatement

protected Statement getJDBCStatement()
JDBCステートメントを取得します。

戻り値:
JDBCステートメント

setJDBCStatement

protected void setJDBCStatement(Statement jdbcStatement)
JDBCステートメントを設定します。

パラメータ:
jdbcStatement - JDBCステートメント

executeUpdate

public int executeUpdate(boolean pendingCommit,
                         boolean reuseStatement)
                  throws DataException
SQL文を実行します。

パラメータpendingCommitは当メソッド内部でのコミットを保留するか?を指定します。
当パラメータをtrueに指定し、更新SQL文を実行した場合は、明示的にcommit,rollbackを行う必要があります。
commit,rollbackはSQL実行時のJDBCAdaptorオブジェクトの下記のメソッドで行います。
・updateSQL.getConnection().commit();
・updateSQL.getConnection().rollback();

パラメータreuseStatementは当メソッド内部で作成されるPreparedStatementオブジェクトを 再利用するか?を指定します。
当パラメータをtrueに指定する目的は、同一更新SQLのパフォーマンスを向上させることです。
また当パラメータをtrueに指定した場合は、明示的にcloseメソッドを呼び出し、開かれたままのカーソルをクローズする必要があります。

パラメータ:
pendingCommit - True:コミットを保留する、False:しない
reuseStatement - True:ステートメントを再利用する、False:しない
戻り値:
更新された行の数
例外:
jp.littlesoft.data.DataException - 例外発生時
DataException

close

public void close()
JDBCステートメントをクローズします。


getJDBCSQL

public String getJDBCSQL()
パラメータのプレースホルダがJDBC形式に変換された後のSQL文を取得します。

※注意 このとき、SQL中の /*$ xxxx $*/ というコメント部分もTable#getParams().getValueAsString("xxxx")の値に置換されます。
例:htmlTable.setSQL("SELECT AAA FROM TBL_X WHERE BBB = :BBB /*$ CCC_IN $*/");
htmlTable.getParams().getValueAsString("CCC_IN") の値が "AND CCC IN ('X', 'Y')"
の場合
"SELECT AAA FROM TBL_X WHERE BBB = ? AND CCC IN ('X', 'Y')"
が結果として返されます。

戻り値:
JDBC形式変換後のSQL文

getJDBCSQL

public String getJDBCSQL(String sql)
検索キーなどのパラメタを解析した後のSQL文を取得します。

戻り値:
検索キーなどのパラメタを解析した後のSQL文


Copyright (C) 2006-2012 LittleSoft Corporation. All Rights Reserved.