クラス MySQLMaxValueIncrementer
java.lang.ObjectSE
org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
org.springframework.jdbc.support.incrementer.AbstractColumnMaxValueIncrementer
org.springframework.jdbc.support.incrementer.MySQLMaxValueIncrementer
- 実装されたすべてのインターフェース:
InitializingBean
,DataFieldMaxValueIncrementer
指定された MySQL テーブルの最大値を、自動インクリメントカラムと同等の値でインクリメントする
DataFieldMaxValueIncrementer
。注: このクラスを使用する場合、シーケンステーブルが機能するため、MySQL キー列は自動インクリメントであってはなりません。シーケンスはテーブルに保持されます。自動生成キーを必要とするテーブルごとに 1 つのシーケンステーブルが必要です。シーケンスは別の接続を使用して割り当てられるため、シーケンステーブルで使用されるストレージエンジンは MYISAM または INNODB にすることができます。進行中の他のトランザクションの影響を受けません。
例:
create table tab (id int unsigned not null primary key, text varchar(100)); create table tab_sequence (value int not null); insert into tab_sequence values(0);
cacheSize
が設定されている場合、中間値はデータベースに照会せずに提供されます。サーバーまたはアプリケーションが停止またはクラッシュした場合、またはトランザクションがロールバックされた場合、未使用の値は提供されません。ナンバリングの最大穴サイズは cacheSize
の値です。
"useNewConnection" プロパティを false に設定することで、インクリメンタの新しい接続の取得を回避することができます。この場合、インクリメンタテーブルを定義するときに、MYISAM などの非トランザクションストレージエンジンを使用する必要があります。
Spring Framework 5.3.7 の時点で、MySQLMaxValueIncrementer
は MySQL セーフアップデートモードと互換性があります。
- 作成者:
- Jean-Pierre Pawlak, Thomas Risberg, Juergen Hoeller, Sam Brannen
フィールドサマリー
クラス org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer から継承されたフィールド
paddingLength
コンストラクターのサマリー
コンストラクター説明Bean プロパティスタイルの使用のデフォルトコンストラクター。MySQLMaxValueIncrementer
(DataSourceSE dataSource, StringSE incrementerName, StringSE columnName) 便利なコンストラクター。メソッドのサマリー
修飾子と型メソッド説明protected long
long として、次に使用するキーを決定します。void
setUseNewConnection
(boolean useNewConnection) インクリメンターに新しい接続を使用するかどうかを設定します。クラス org.springframework.jdbc.support.incrementer.AbstractColumnMaxValueIncrementer から継承されたメソッド
afterPropertiesSet, getCacheSize, getColumnName, setCacheSize, setColumnName
クラス org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer から継承されたメソッド
getDataSource, getIncrementerName, getPaddingLength, nextIntValue, nextLongValue, nextStringValue, setDataSource, setIncrementerName, setPaddingLength
コンストラクターの詳細
MySQLMaxValueIncrementer
public MySQLMaxValueIncrementer()Bean プロパティスタイルの使用のデフォルトコンストラクター。MySQLMaxValueIncrementer
public MySQLMaxValueIncrementer(DataSourceSE dataSource, StringSE incrementerName, StringSE columnName) 便利なコンストラクター。- パラメーター:
dataSource
- 使用する DataSourceincrementerName
- 使用するシーケンステーブルの名前columnName
- 使用するシーケンステーブルの列の名前
メソッドの詳細
setUseNewConnection
public void setUseNewConnection(boolean useNewConnection) インクリメンターに新しい接続を使用するかどうかを設定します。true
は、インクリメント操作に分離された別個のトランザクションを使用して、トランザクションストレージエンジンをサポートするために必要です。シーケンステーブルのストレージエンジンが非トランザクション(MYISAM など)である場合は、false
で十分です。インクリメント操作のために追加のConnection
を取得する手間が省けます。Spring Framework 5.0 以降、デフォルトは
true
です。- 導入:
- 4.3.6
- 関連事項:
getNextKey
クラスからコピーされた説明:AbstractDataFieldMaxValueIncrementer
long として、次に使用するキーを決定します。- 次で指定:
- クラス
AbstractDataFieldMaxValueIncrementer
のgetNextKey
- 戻り値:
- long として使用するキー。最終的には、このクラスのパブリックコンクリートメソッドによって後で別の形式に変換されます。
- 例外:
DataAccessException