jp.co.lumber_mill.database
Class ActiveRecord

java.lang.Object
  extended by jp.co.lumber_mill.database.ActiveRecord
Direct Known Subclasses:
ActiveRecordTest.ArrayRecord, ActiveRecordTest.BlobClobRecord, ActiveRecordTest.Foo, ActiveRecordTest.SamplesRecord, ApplicationRecord, ApplicationStepRecord, ApprovalRecord, AttachmentRecord, ConstraintRecord, HistoryRecord, PropertyRecord, PublishTaskRecord, SnapCacheRecord, SnapRecord

public abstract class ActiveRecord
extends java.lang.Object

ActiveRecord is a superclass for all O/R(Object and Relational) mapping bridge class.


Field Summary
static boolean EXPLICIT_NULL
          明示的なNULL指定です。
static boolean IMPLICIT_NULL
          暗黙のNULL指定です。
INSERT時: 列の規定値が採用されます。規定値がなくNULL不可の場合、追加エラーになります。
UPDATE時: 既存レコードの値がそのまま残ります。
static boolean NORMAL_QUERY
          通常のSQLクエリです。BLOB列、CLOB列は更新できません。
static boolean PREPARED_QUERY
          準備済みクエリです。値が全て「?(プレースホルダ)」で指定されます。
 
Constructor Summary
ActiveRecord()
           
 
Method Summary
 java.lang.String countQuery(Condition cond)
          このテーブルに存在するレコードの件数を数えるクエリを生成します。
 java.lang.String deleteQuery()
           
 boolean equals(java.lang.Object obj)
           
 java.lang.Object get(java.lang.String colname)
           
 java.lang.Object getDefault(java.lang.String colname)
           
 java.lang.String getInternalTableName()
           
 java.lang.String getLabel(java.lang.String name)
           
abstract  java.lang.String[] getNames()
           
 java.lang.String[] getNamesAsLabel()
           
 java.lang.String[] getNamesOfPrimaryKey()
          このレコードのプライマリキー名の配列を返します。 プライマリキーが定義されていない場合、長さ0の配列を返します。
abstract  java.lang.String getTableName()
           
 java.lang.Class<?> getType(java.lang.String colname)
           
 java.lang.Class<?>[] getTypes()
           
 int hashCode()
           
 Condition identityCondition()
           
 java.lang.String identityQuery()
           
 java.lang.String insertQuery(boolean explicit_null, boolean prepared)
           
 boolean isNullable(java.lang.String colname)
           
 boolean isPrimaryKey(java.lang.String colname)
           
 boolean isReadyForUpdate()
          プライマリキーに値がセットされているかどうか検査します。 キー列にNULL値が一つもなければ、trueを返します。 プライマリキーがないテーブルでは常にfalseを返します。
 void read(java.util.Map<java.lang.String,java.lang.String[]> map)
          Deprecated. AbstractControllerに移動
 void read(java.lang.Object[] values)
           
 void read(java.sql.ResultSet rs)
           
 void set(java.lang.String colname, java.lang.Object value)
           
 void setTableName(java.lang.String name)
          このレコードに関連付けられたテーブル名を上書きします。 NULLをセットすると、デフォルトのテーブル名にリセットされます。
 java.lang.String toString()
           
 void updatePreparedStatementForInsert(boolean explicit_null, java.sql.PreparedStatement ps)
           
 void updatePreparedStatementForUpdate(boolean explicit_null, java.sql.PreparedStatement ps)
           
 java.lang.String updateQuery(boolean explicit_null, boolean prepared)
           
protected  java.lang.Object valueOf(java.lang.String value, java.lang.Class<?> type)
          文字列を指定された型のインスタンスに変換するメソッドです。
setメソッド内部で利用されます。レコードでカスタムされたフォーマットを利用する場合、 このメソッドを適宜オーバライドして下さい。
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

EXPLICIT_NULL

public static final boolean EXPLICIT_NULL
明示的なNULL指定です。

See Also:
Constant Field Values

IMPLICIT_NULL

public static final boolean IMPLICIT_NULL
暗黙のNULL指定です。
INSERT時: 列の規定値が採用されます。規定値がなくNULL不可の場合、追加エラーになります。
UPDATE時: 既存レコードの値がそのまま残ります。

See Also:
Constant Field Values

NORMAL_QUERY

public static final boolean NORMAL_QUERY
通常のSQLクエリです。BLOB列、CLOB列は更新できません。

See Also:
Constant Field Values

PREPARED_QUERY

public static final boolean PREPARED_QUERY
準備済みクエリです。値が全て「?(プレースホルダ)」で指定されます。

See Also:
Constant Field Values
Constructor Detail

ActiveRecord

public ActiveRecord()
Method Detail

countQuery

public java.lang.String countQuery(Condition cond)
このテーブルに存在するレコードの件数を数えるクエリを生成します。

Parameters:
cond - 条件(nullの場合、全て)
Returns:

deleteQuery

public final java.lang.String deleteQuery()

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

get

public final java.lang.Object get(java.lang.String colname)
                           throws ActiveRecordException
Throws:
ActiveRecordException

getType

public final java.lang.Class<?> getType(java.lang.String colname)
                                 throws ActiveRecordException
Throws:
ActiveRecordException

getInternalTableName

public java.lang.String getInternalTableName()

getLabel

public final java.lang.String getLabel(java.lang.String name)
                                throws ActiveRecordException
Throws:
ActiveRecordException

getNames

public abstract java.lang.String[] getNames()

getNamesAsLabel

public java.lang.String[] getNamesAsLabel()

getNamesOfPrimaryKey

public java.lang.String[] getNamesOfPrimaryKey()
このレコードのプライマリキー名の配列を返します。 プライマリキーが定義されていない場合、長さ0の配列を返します。

Returns:
プライマリキー名の配列

getTableName

public abstract java.lang.String getTableName()

getTypes

public final java.lang.Class<?>[] getTypes()
                                    throws ActiveRecordException
Throws:
ActiveRecordException

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

identityCondition

public final Condition identityCondition()

identityQuery

public final java.lang.String identityQuery()

insertQuery

public final java.lang.String insertQuery(boolean explicit_null,
                                          boolean prepared)
Parameters:
explicit_null - NULL値を明示する
prepared - 準備済みクエリの場合true
Returns:

isReadyForUpdate

public final boolean isReadyForUpdate()
プライマリキーに値がセットされているかどうか検査します。 キー列にNULL値が一つもなければ、trueを返します。 プライマリキーがないテーブルでは常にfalseを返します。

Returns:
全てのプライマリキーに値がセットされているか

getDefault

public java.lang.Object getDefault(java.lang.String colname)
                            throws ActiveRecordException
Throws:
ActiveRecordException

isPrimaryKey

public boolean isPrimaryKey(java.lang.String colname)
                     throws ActiveRecordException
Throws:
ActiveRecordException

isNullable

public final boolean isNullable(java.lang.String colname)
                         throws ActiveRecordException
Throws:
ActiveRecordException

read

public final void read(java.util.Map<java.lang.String,java.lang.String[]> map)
                throws ActiveRecordException
Deprecated. AbstractControllerに移動

Parameters:
map -
Throws:
ActiveRecordException

read

public final void read(java.lang.Object[] values)
                throws ActiveRecordException
Throws:
ActiveRecordException

read

public final void read(java.sql.ResultSet rs)
                throws ActiveRecordException
Throws:
ActiveRecordException

set

public final void set(java.lang.String colname,
                      java.lang.Object value)
               throws ActiveRecordException
Throws:
ActiveRecordException

setTableName

public void setTableName(java.lang.String name)
このレコードに関連付けられたテーブル名を上書きします。 NULLをセットすると、デフォルトのテーブル名にリセットされます。

Parameters:
name - テーブル名

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

updatePreparedStatementForInsert

public void updatePreparedStatementForInsert(boolean explicit_null,
                                             java.sql.PreparedStatement ps)
                                      throws java.sql.SQLException
Throws:
java.sql.SQLException

updatePreparedStatementForUpdate

public void updatePreparedStatementForUpdate(boolean explicit_null,
                                             java.sql.PreparedStatement ps)
                                      throws java.sql.SQLException
Throws:
java.sql.SQLException

updateQuery

public final java.lang.String updateQuery(boolean explicit_null,
                                          boolean prepared)

valueOf

protected java.lang.Object valueOf(java.lang.String value,
                                   java.lang.Class<?> type)
                            throws java.lang.NumberFormatException,
                                   java.text.ParseException
文字列を指定された型のインスタンスに変換するメソッドです。
setメソッド内部で利用されます。レコードでカスタムされたフォーマットを利用する場合、 このメソッドを適宜オーバライドして下さい。

Parameters:
value - 文字列
type - クラス
Returns:
Throws:
java.lang.NumberFormatException
java.text.ParseException