public abstract class JDBCPersistManager extends java.lang.Object implements PersistManager
Modifier and Type | Field and Description |
---|---|
static int |
CONTSTAT_FIRST_AND_SECOND_PART |
static int |
CONTSTAT_FIRST_PART |
static int |
CONTSTAT_SECOND_PART |
static boolean |
mDebugOn |
CLOSE_RETAIN_TABLE, INIT_TABLE_EXISTS, PCEVT_CANT_BE_PERSISTED, PCEVT_NO_PASSIVATE_NON_ZERO_LOCK, PCEVT_NO_PASSIVATE_NOT_ALL_ELEM_PERS, PCEVT_NODE_RECENTLY_USED
Constructor and Description |
---|
JDBCPersistManager() |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
bindChangeParentDataRow(java.sql.PreparedStatement pStmt,
long id,
long parid,
int collid) |
protected abstract void |
bindDeleteAllDataRows(java.sql.PreparedStatement stmt,
int collid) |
protected abstract void |
bindDeleteDataRow(java.sql.PreparedStatement stmt,
long id,
int collid) |
protected abstract void |
bindDeleteKeyInfo(java.sql.PreparedStatement pStmt,
long id,
int collid) |
protected abstract void |
bindDeleteOldChunksDataRow(java.sql.PreparedStatement pStmt,
long id,
int collid,
int begIndx,
int endIndx) |
protected abstract void |
bindInsertDataRow(java.sql.PreparedStatement pStmt,
long id,
long parid,
int collid,
int keyContLen,
int contentLen,
int contentIdx,
byte[] chunk,
int contentStatus) |
protected abstract void |
bindInsertKeyInfo(java.sql.PreparedStatement pStmt,
long id,
int collid,
int keyid,
int keyhash) |
protected abstract void |
bindRetrieveDataRow(java.sql.PreparedStatement pStmt,
long id,
int collid,
boolean justLen) |
protected abstract void |
bindRetrieveIdsWithKey(java.sql.PreparedStatement pStmt,
int keyId,
java.lang.Object keyVal,
int keyHash,
int collid) |
protected abstract void |
bindUpdateDataRow(java.sql.PreparedStatement pStmt,
long id,
long parid,
int collid,
int keyContLen,
int contentLen,
int contentIdx,
byte[] chunk,
int contentStatus) |
protected boolean |
canResetSequence() |
void |
changeParent(long id,
long parid,
int collid) |
void |
close() |
void |
close(int flags) |
protected static void |
closeResultSet(java.sql.ResultSet rslt) |
protected static void |
closeStmt(java.sql.Statement stmt) |
void |
commit() |
protected abstract int |
contentChunkLength() |
protected void |
createControlTable() |
protected void |
createTable() |
void |
delete(long id,
int collid) |
void |
deleteAll(int collid) |
protected void |
deleteControlRow(java.lang.String controlTabName,
java.lang.String tableName) |
protected void |
deleteOldChunksDataRow(java.lang.String tabName,
long id,
int collid,
int begIndx,
int endIndx) |
protected void |
dropOutdatedControlTable() |
protected abstract void |
dropTable(java.lang.String tabName) |
java.sql.Connection |
getConnection() |
protected abstract byte[] |
getContentDataRow(java.sql.ResultSet rslt,
long[] idRet,
long[] parentIdRet,
int[] contentLenRet,
boolean justLen) |
protected int |
getContentLenDataRow(java.lang.String tabName,
long id,
int collid,
boolean inclKey) |
protected abstract java.util.Date |
getCurrentTimeFromDb() |
abstract int |
getMaxTabNameLength() |
long |
getTableSignature(java.lang.String tableName) |
protected boolean |
handleControlRowLockConflict(java.sql.SQLException ex,
boolean forCreate,
java.lang.String tableName) |
protected void |
handleControlTableExists(java.sql.SQLException ex) |
boolean |
holdTableName(java.lang.String tableName,
boolean forCreate) |
void |
init(int flags) |
void |
insert(long id,
long parid,
int collid,
PCollKeyInfo[] keyArr,
byte[] content) |
void |
insert(long id,
long parid,
int collid,
PCollKeyInfo[] keyArr,
byte[] content,
int off,
int len) |
boolean |
isPersistent() |
void |
notifyPCollEvent(int id,
java.lang.Object obj,
java.lang.Object otherInfo) |
long |
queryNextCollectionId() |
long |
queryNextNodeId(int colId) |
long |
queryNextObjId(int colId) |
java.lang.Object[] |
retrieve(long id,
int collid,
boolean keyonly,
long[] parentIdRet) |
long[] |
retrieveIdsWithKey(int keyId,
java.lang.Object keyVal,
int collid) |
void |
setCommitThreshhold(int value) |
void |
setPCollManager(PCollManager mgr) |
void |
setPersistent(boolean pers) |
void |
setTableCreated(boolean tableCreated) |
void |
setTableName(java.lang.String tableName) |
protected abstract java.lang.String |
sqlAddKeyContColumn(java.lang.String tabName) |
protected abstract java.lang.String |
sqlChangeParentDataRow(java.lang.String tabName,
long id,
long parid,
int collid) |
protected abstract java.lang.String |
sqlCreateControlTable(java.lang.String controlTabName) |
protected abstract java.lang.String |
sqlCreateIndex(java.lang.String tabName) |
protected abstract java.lang.String |
sqlCreateKeyInfoIdIndex(java.lang.String keyInfoIndexName,
java.lang.String keyInfoTabName) |
protected abstract java.lang.String |
sqlCreateKeyInfoKeyIndex(java.lang.String keyInfoIndexName,
java.lang.String keyInfoTabName) |
protected abstract java.lang.String |
sqlCreateKeyInfoTable(java.lang.String keyInfoTabName) |
protected java.lang.String |
sqlCreateSequence(java.lang.String seqName) |
protected abstract java.lang.String |
sqlCreateTable(java.lang.String tabName) |
protected abstract java.lang.String |
sqlDeleteAllDataRows(java.lang.String tabName,
int collid) |
protected abstract java.lang.String |
sqlDeleteControlRow(java.lang.String controlTabName,
java.lang.String tabName) |
protected abstract java.lang.String |
sqlDeleteDataRow(java.lang.String tabName,
long id,
int collid) |
protected abstract java.lang.String |
sqlDeleteKeyInfo(java.lang.String keyInfoTabName,
long id) |
protected abstract java.lang.String |
sqlDeleteOldChunksDataRow(java.lang.String tabName,
long id,
int collid,
int begIndx,
int endIndx) |
protected abstract java.lang.String |
sqlDropKeyInfoTable(java.lang.String keyInfoTabName) |
protected abstract java.lang.String |
sqlInsertControlRow(java.lang.String controlTabName,
java.lang.String tabName) |
protected abstract java.lang.String |
sqlInsertDataRow(java.lang.String tabName,
long id,
long parid,
int collid) |
protected abstract java.lang.String |
sqlInsertKeyInfo(java.lang.String keyInfoTabName) |
protected abstract int |
sqlLockConflictErrorCode() |
protected abstract java.lang.String |
sqlLockControlRow(java.lang.String controlTabName,
java.lang.String tabName) |
protected abstract long |
sqlNextSequenceVal(java.lang.String seqName) |
protected abstract java.lang.String |
sqlRetrieveDataRow(java.lang.String tabName,
long id,
int collid,
boolean justLen,
boolean keyonly) |
protected abstract java.lang.String |
sqlRetrieveIdsWithKey(java.lang.String tabName,
java.lang.String keyInfoTabName,
int keyId,
java.lang.Object keyval,
int collid) |
protected abstract int |
sqlTableExistsErrorCode() |
protected abstract java.lang.String |
sqlUpdateControlRow(java.lang.String controlTabName,
java.lang.String tabName,
java.lang.String dateColName) |
protected abstract java.lang.String |
sqlUpdateDataRow(java.lang.String tabName,
long id,
long parid,
int collid) |
void |
update(long id,
long parid,
int collid,
PCollKeyInfo[] keyArr,
byte[] content) |
void |
update(long id,
long parid,
int collid,
PCollKeyInfo[] keyArr,
byte[] content,
int off,
int len) |
protected void |
updateControlRow(java.lang.String tableName,
java.lang.String dateColName) |
void |
updateKeyInfo(long id,
int collid,
PCollKeyInfo[] keyArr) |
boolean |
waitForTableName(java.lang.String tableName) |
public static final int CONTSTAT_FIRST_PART
public static final int CONTSTAT_FIRST_AND_SECOND_PART
public static final int CONTSTAT_SECOND_PART
public static final boolean mDebugOn
public abstract int getMaxTabNameLength()
getMaxTabNameLength
in interface PersistManager
protected abstract java.lang.String sqlCreateControlTable(java.lang.String controlTabName)
protected abstract int sqlTableExistsErrorCode()
protected abstract void dropTable(java.lang.String tabName)
protected abstract java.lang.String sqlAddKeyContColumn(java.lang.String tabName)
protected abstract java.lang.String sqlDropKeyInfoTable(java.lang.String keyInfoTabName)
protected abstract java.lang.String sqlCreateKeyInfoTable(java.lang.String keyInfoTabName)
protected abstract java.lang.String sqlCreateKeyInfoKeyIndex(java.lang.String keyInfoIndexName, java.lang.String keyInfoTabName)
protected abstract java.lang.String sqlCreateKeyInfoIdIndex(java.lang.String keyInfoIndexName, java.lang.String keyInfoTabName)
protected abstract java.lang.String sqlCreateTable(java.lang.String tabName)
protected abstract java.lang.String sqlCreateIndex(java.lang.String tabName)
protected abstract long sqlNextSequenceVal(java.lang.String seqName)
protected abstract java.util.Date getCurrentTimeFromDb()
protected abstract java.lang.String sqlDeleteControlRow(java.lang.String controlTabName, java.lang.String tabName)
protected abstract java.lang.String sqlUpdateControlRow(java.lang.String controlTabName, java.lang.String tabName, java.lang.String dateColName)
protected abstract java.lang.String sqlLockControlRow(java.lang.String controlTabName, java.lang.String tabName)
protected abstract java.lang.String sqlInsertControlRow(java.lang.String controlTabName, java.lang.String tabName)
protected abstract int sqlLockConflictErrorCode()
protected abstract int contentChunkLength()
protected abstract java.lang.String sqlDeleteKeyInfo(java.lang.String keyInfoTabName, long id)
protected abstract void bindDeleteKeyInfo(java.sql.PreparedStatement pStmt, long id, int collid) throws java.sql.SQLException
java.sql.SQLException
protected abstract java.lang.String sqlInsertKeyInfo(java.lang.String keyInfoTabName)
protected abstract void bindInsertKeyInfo(java.sql.PreparedStatement pStmt, long id, int collid, int keyid, int keyhash) throws java.sql.SQLException
java.sql.SQLException
protected abstract java.lang.String sqlInsertDataRow(java.lang.String tabName, long id, long parid, int collid)
protected abstract void bindInsertDataRow(java.sql.PreparedStatement pStmt, long id, long parid, int collid, int keyContLen, int contentLen, int contentIdx, byte[] chunk, int contentStatus) throws java.sql.SQLException
java.sql.SQLException
protected abstract java.lang.String sqlDeleteOldChunksDataRow(java.lang.String tabName, long id, int collid, int begIndx, int endIndx)
protected abstract void bindDeleteOldChunksDataRow(java.sql.PreparedStatement pStmt, long id, int collid, int begIndx, int endIndx) throws java.sql.SQLException
java.sql.SQLException
protected abstract java.lang.String sqlUpdateDataRow(java.lang.String tabName, long id, long parid, int collid)
protected abstract void bindUpdateDataRow(java.sql.PreparedStatement pStmt, long id, long parid, int collid, int keyContLen, int contentLen, int contentIdx, byte[] chunk, int contentStatus) throws java.sql.SQLException
java.sql.SQLException
protected abstract java.lang.String sqlChangeParentDataRow(java.lang.String tabName, long id, long parid, int collid)
protected abstract void bindChangeParentDataRow(java.sql.PreparedStatement pStmt, long id, long parid, int collid) throws java.sql.SQLException
java.sql.SQLException
protected abstract java.lang.String sqlDeleteDataRow(java.lang.String tabName, long id, int collid)
protected abstract void bindDeleteDataRow(java.sql.PreparedStatement stmt, long id, int collid) throws java.sql.SQLException
java.sql.SQLException
protected abstract java.lang.String sqlDeleteAllDataRows(java.lang.String tabName, int collid)
protected abstract void bindDeleteAllDataRows(java.sql.PreparedStatement stmt, int collid) throws java.sql.SQLException
java.sql.SQLException
protected abstract java.lang.String sqlRetrieveDataRow(java.lang.String tabName, long id, int collid, boolean justLen, boolean keyonly)
protected abstract void bindRetrieveDataRow(java.sql.PreparedStatement pStmt, long id, int collid, boolean justLen) throws java.sql.SQLException
java.sql.SQLException
protected abstract byte[] getContentDataRow(java.sql.ResultSet rslt, long[] idRet, long[] parentIdRet, int[] contentLenRet, boolean justLen) throws java.sql.SQLException
java.sql.SQLException
protected abstract java.lang.String sqlRetrieveIdsWithKey(java.lang.String tabName, java.lang.String keyInfoTabName, int keyId, java.lang.Object keyval, int collid)
protected abstract void bindRetrieveIdsWithKey(java.sql.PreparedStatement pStmt, int keyId, java.lang.Object keyVal, int keyHash, int collid) throws java.sql.SQLException
java.sql.SQLException
public void close()
close
in interface PersistManager
public void close(int flags)
close
in interface PersistManager
public void setPCollManager(PCollManager mgr)
setPCollManager
in interface PersistManager
public java.sql.Connection getConnection()
public void setTableName(java.lang.String tableName)
setTableName
in interface PersistManager
public void setCommitThreshhold(int value)
setCommitThreshhold
in interface PersistManager
public boolean isPersistent()
public void setPersistent(boolean pers)
setPersistent
in interface PersistManager
public void setTableCreated(boolean tableCreated)
setTableCreated
in interface PersistManager
protected static void closeStmt(java.sql.Statement stmt)
protected static void closeResultSet(java.sql.ResultSet rslt)
public void commit()
commit
in interface PersistManager
protected void handleControlTableExists(java.sql.SQLException ex)
protected void dropOutdatedControlTable()
protected void createControlTable()
protected void createTable()
protected java.lang.String sqlCreateSequence(java.lang.String seqName)
protected boolean canResetSequence()
protected void deleteControlRow(java.lang.String controlTabName, java.lang.String tableName)
protected void updateControlRow(java.lang.String tableName, java.lang.String dateColName)
protected boolean handleControlRowLockConflict(java.sql.SQLException ex, boolean forCreate, java.lang.String tableName)
public long getTableSignature(java.lang.String tableName)
getTableSignature
in interface PersistManager
public void init(int flags)
init
in interface PersistManager
public boolean waitForTableName(java.lang.String tableName)
waitForTableName
in interface PersistManager
public boolean holdTableName(java.lang.String tableName, boolean forCreate)
holdTableName
in interface PersistManager
public long queryNextCollectionId()
queryNextCollectionId
in interface PersistManager
public long queryNextObjId(int colId)
queryNextObjId
in interface PersistManager
public long queryNextNodeId(int colId)
queryNextNodeId
in interface PersistManager
public void updateKeyInfo(long id, int collid, PCollKeyInfo[] keyArr) throws java.sql.SQLException
java.sql.SQLException
public void insert(long id, long parid, int collid, PCollKeyInfo[] keyArr, byte[] content)
insert
in interface PersistManager
public void insert(long id, long parid, int collid, PCollKeyInfo[] keyArr, byte[] content, int off, int len)
insert
in interface PersistManager
protected void deleteOldChunksDataRow(java.lang.String tabName, long id, int collid, int begIndx, int endIndx)
public void update(long id, long parid, int collid, PCollKeyInfo[] keyArr, byte[] content)
update
in interface PersistManager
public void update(long id, long parid, int collid, PCollKeyInfo[] keyArr, byte[] content, int off, int len)
update
in interface PersistManager
public void changeParent(long id, long parid, int collid)
changeParent
in interface PersistManager
public void delete(long id, int collid)
delete
in interface PersistManager
public void deleteAll(int collid)
deleteAll
in interface PersistManager
protected int getContentLenDataRow(java.lang.String tabName, long id, int collid, boolean inclKey)
public java.lang.Object[] retrieve(long id, int collid, boolean keyonly, long[] parentIdRet)
retrieve
in interface PersistManager
public long[] retrieveIdsWithKey(int keyId, java.lang.Object keyVal, int collid)
retrieveIdsWithKey
in interface PersistManager
public void notifyPCollEvent(int id, java.lang.Object obj, java.lang.Object otherInfo)
notifyPCollEvent
in interface PersistManager