public class SybaseAnywhereMaxValueIncrementer extends SybaseMaxValueIncrementer
DataFieldMaxValueIncrementer
。注: このクラスを使用する場合、シーケンステーブルが機能するため、テーブルキー列を IDENTITY 列として定義しないでください。このクラスは、Sybase Anywhere で使用するためのものです。
シーケンスはテーブルに保持されます。自動生成キーを必要とするテーブルごとに 1 つのシーケンステーブルが必要です。
例:
create table tab (id int not null primary key, text varchar(100)) create table tab_sequence (id bigint identity) insert into tab_sequence values(DEFAULT)"cacheSize" が設定されている場合、データベースを照会せずに中間値が提供されます。サーバーまたはアプリケーションが停止またはクラッシュしたり、トランザクションがロールバックされたりすると、未使用の値は提供されません。番号付けの最大ホールサイズは cacheSize の値になります。 ヒント : Sybase Anywhere は JDBC 3.0
getGeneratedKeys
メソッドをサポートしているため、テーブルで直接 IDENTITY 列を使用し、次に JdbcTemplate
の update(PreparedStatementCreator psc, KeyHolder generatedKeyHolder)
メソッドで呼び出すときに SimpleJdbcInsert
を使用するか、KeyHolder
を利用することをお勧めします。提案してくれた Tarald Saxi Stormark に感謝します!
paddingLength
コンストラクターと説明 |
---|
SybaseAnywhereMaxValueIncrementer() Bean プロパティスタイルの使用のデフォルトコンストラクター。 |
SybaseAnywhereMaxValueIncrementer(javax.sql.DataSource dataSource, java.lang.String incrementerName, java.lang.String columnName) 便利なコンストラクター。 |
修飾子と型 | メソッドと説明 |
---|---|
protected java.lang.String | getIncrementStatement() 「シーケンス」値をインクリメントするために使用するステートメント。 |
getIdentityStatement
getDeleteStatement, getNextKey, isDeleteSpecificValues, setDeleteSpecificValues
afterPropertiesSet, getCacheSize, getColumnName, setCacheSize, setColumnName
getDataSource, getIncrementerName, getPaddingLength, nextIntValue, nextLongValue, nextStringValue, setDataSource, setIncrementerName, setPaddingLength
public SybaseAnywhereMaxValueIncrementer()
public SybaseAnywhereMaxValueIncrementer(javax.sql.DataSource dataSource, java.lang.String incrementerName, java.lang.String columnName)
dataSource
- 使用する DataSourceincrementerName
- 使用するシーケンス / テーブルの名前 columnName
- 使用するシーケンステーブルの列の名前 protected java.lang.String getIncrementStatement()
AbstractIdentityColumnMaxValueIncrementer
SybaseMaxValueIncrementer
の getIncrementStatement