Package org.xipki.datasource
Class DataSourceWrapper
- java.lang.Object
-
- org.xipki.datasource.DataSourceWrapper
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public abstract class DataSourceWrapper extends java.lang.Object implements java.io.CloseableA wrapper ofHikariDataSource.- Since:
- 2.0.0
- Author:
- Lijun Liao (xipki)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddForeignKeyConstraint(java.sql.Connection conn, java.lang.String constraintName, java.lang.String baseTable, java.lang.String baseColumn, java.lang.String referencedTable, java.lang.String referencedColumn, java.lang.String onDeleteAction, java.lang.String onUpdateAction)voidaddPrimaryKey(java.sql.Connection conn, java.lang.String primaryKeyName, java.lang.String table, java.lang.String... columns)voidaddUniqueConstrain(java.sql.Connection conn, java.lang.String constraintName, java.lang.String table, java.lang.String... columns)protected java.lang.StringbuildAndCacheNextSeqValueSql(java.lang.String sequenceName)protected abstract java.lang.StringbuildCreateSequenceSql(java.lang.String sequenceName, long startValue)protected abstract java.lang.StringbuildDropSequenceSql(java.lang.String sequenceName)protected abstract java.lang.StringbuildNextSeqValueSql(java.lang.String sequenceName)java.lang.StringbuildSelectFirstSql(int rows, java.lang.String coreSql)abstract java.lang.StringbuildSelectFirstSql(int rows, java.lang.String orderBy, java.lang.String coreSql)voidclose()booleancolumnExists(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.Object value)voidcreateIndex(java.sql.Connection conn, java.lang.String indexName, java.lang.String table, java.lang.String... columns)voidcreateSequence(java.lang.String sequenceName, long startValue)java.sql.StatementcreateStatement()java.sql.StatementcreateStatement(java.sql.Connection conn)booleandeleteFromTable(java.sql.Connection conn, java.lang.String table, java.lang.String idColumn, long id)voiddeleteFromTableWithException(java.sql.Connection conn, java.lang.String table, java.lang.String idColumn, long id)voiddropAndCreateSequence(java.lang.String sequenceName, long startValue)voiddropForeignKeyConstraint(java.sql.Connection conn, java.lang.String constraintName, java.lang.String baseTable)voiddropIndex(java.sql.Connection conn, java.lang.String table, java.lang.String indexName)voiddropPrimaryKey(java.sql.Connection conn, java.lang.String primaryKeyName, java.lang.String table)voiddropSequence(java.lang.String sequenceName)voiddropUniqueConstrain(java.sql.Connection conn, java.lang.String constraintName, java.lang.String table)java.sql.ConnectiongetConnection()intgetCount(java.sql.Connection conn, java.lang.String table)DatabaseTypegetDatabaseType()java.lang.IntegergetFirstIntValue(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.String criteria)java.lang.LonggetFirstLongValue(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.String criteria)java.lang.StringgetFirstStringValue(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.String criteria)java.io.PrintWritergetLogWriter()longgetMax(java.sql.Connection conn, java.lang.String table, java.lang.String column)longgetMax(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.String condition)intgetMaximumPoolSize()longgetMin(java.sql.Connection conn, java.lang.String table, java.lang.String column)longgetMin(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.String condition)java.lang.StringgetName()protected java.lang.StringgetSqlToAddForeignKeyConstraint(java.lang.String constraintName, java.lang.String baseTable, java.lang.String baseColumn, java.lang.String referencedTable, java.lang.String referencedColumn, java.lang.String onDeleteAction, java.lang.String onUpdateAction)protected java.lang.StringgetSqlToAddPrimaryKey(java.lang.String primaryKeyName, java.lang.String table, java.lang.String... columns)protected java.lang.StringgetSqlToAddUniqueConstrain(java.lang.String constraintName, java.lang.String table, java.lang.String... columns)protected java.lang.StringgetSqlToCreateIndex(java.lang.String indexName, java.lang.String table, java.lang.String... columns)protected java.lang.StringgetSqlToDropForeignKeyConstraint(java.lang.String constraintName, java.lang.String baseTable)protected java.lang.StringgetSqlToDropIndex(java.lang.String table, java.lang.String indexName)protected java.lang.StringgetSqlToDropPrimaryKey(java.lang.String primaryKeyName, java.lang.String table)protected java.lang.StringgetSqlToDropUniqueConstraint(java.lang.String constraintName, java.lang.String table)protected booleanisUseSqlStateAsCode()longnextSeqValue(java.sql.Connection conn, java.lang.String sequenceName)java.sql.PreparedStatementprepareStatement(java.lang.String sqlQuery)java.sql.PreparedStatementprepareStatement(java.sql.Connection conn, java.lang.String sqlQuery)voidreleaseResources(java.sql.Statement ps, java.sql.ResultSet rs)voidreleaseResources(java.sql.Statement ps, java.sql.ResultSet rs, boolean returnConnection)voidreturnConnection(java.sql.Connection conn)voidsetLastUsedSeqValue(java.lang.String sequenceName, long sequenceValue)booleantableExists(java.sql.Connection conn, java.lang.String table)booleantableHasColumn(java.sql.Connection conn, java.lang.String table, java.lang.String column)DataAccessExceptiontranslate(java.lang.String sql, java.sql.SQLException ex)
-
-
-
Method Detail
-
getName
public final java.lang.String getName()
-
getDatabaseType
public final DatabaseType getDatabaseType()
-
getMaximumPoolSize
public final int getMaximumPoolSize()
-
getConnection
public final java.sql.Connection getConnection() throws DataAccessException- Throws:
DataAccessException
-
returnConnection
public void returnConnection(java.sql.Connection conn)
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable
-
getLogWriter
public final java.io.PrintWriter getLogWriter() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
createStatement
public java.sql.Statement createStatement(java.sql.Connection conn) throws DataAccessException- Throws:
DataAccessException
-
createStatement
public java.sql.Statement createStatement() throws DataAccessException- Throws:
DataAccessException
-
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.sql.Connection conn, java.lang.String sqlQuery) throws DataAccessException- Throws:
DataAccessException
-
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sqlQuery) throws DataAccessException- Throws:
DataAccessException
-
releaseResources
public void releaseResources(java.sql.Statement ps, java.sql.ResultSet rs)
-
releaseResources
public void releaseResources(java.sql.Statement ps, java.sql.ResultSet rs, boolean returnConnection)
-
buildSelectFirstSql
public java.lang.String buildSelectFirstSql(int rows, java.lang.String coreSql)
-
buildSelectFirstSql
public abstract java.lang.String buildSelectFirstSql(int rows, java.lang.String orderBy, java.lang.String coreSql)
-
getFirstStringValue
public java.lang.String getFirstStringValue(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.String criteria) throws DataAccessException- Throws:
DataAccessException
-
getFirstIntValue
public java.lang.Integer getFirstIntValue(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.String criteria) throws DataAccessException- Throws:
DataAccessException
-
getFirstLongValue
public java.lang.Long getFirstLongValue(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.String criteria) throws DataAccessException- Throws:
DataAccessException
-
getMin
public long getMin(java.sql.Connection conn, java.lang.String table, java.lang.String column) throws DataAccessException- Throws:
DataAccessException
-
getMin
public long getMin(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.String condition) throws DataAccessException- Throws:
DataAccessException
-
getCount
public int getCount(java.sql.Connection conn, java.lang.String table) throws DataAccessException- Throws:
DataAccessException
-
getMax
public long getMax(java.sql.Connection conn, java.lang.String table, java.lang.String column) throws DataAccessException- Throws:
DataAccessException
-
getMax
public long getMax(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.String condition) throws DataAccessException- Throws:
DataAccessException
-
deleteFromTable
public boolean deleteFromTable(java.sql.Connection conn, java.lang.String table, java.lang.String idColumn, long id)
-
deleteFromTableWithException
public void deleteFromTableWithException(java.sql.Connection conn, java.lang.String table, java.lang.String idColumn, long id) throws java.sql.SQLException, DataAccessException- Throws:
java.sql.SQLExceptionDataAccessException
-
columnExists
public boolean columnExists(java.sql.Connection conn, java.lang.String table, java.lang.String column, java.lang.Object value) throws DataAccessException- Throws:
DataAccessException
-
tableHasColumn
public boolean tableHasColumn(java.sql.Connection conn, java.lang.String table, java.lang.String column) throws DataAccessException- Throws:
DataAccessException
-
tableExists
public boolean tableExists(java.sql.Connection conn, java.lang.String table) throws DataAccessException- Throws:
DataAccessException
-
buildCreateSequenceSql
protected abstract java.lang.String buildCreateSequenceSql(java.lang.String sequenceName, long startValue)
-
buildDropSequenceSql
protected abstract java.lang.String buildDropSequenceSql(java.lang.String sequenceName)
-
buildNextSeqValueSql
protected abstract java.lang.String buildNextSeqValueSql(java.lang.String sequenceName)
-
buildAndCacheNextSeqValueSql
protected final java.lang.String buildAndCacheNextSeqValueSql(java.lang.String sequenceName)
-
isUseSqlStateAsCode
protected boolean isUseSqlStateAsCode()
-
dropAndCreateSequence
public void dropAndCreateSequence(java.lang.String sequenceName, long startValue) throws DataAccessException- Throws:
DataAccessException
-
createSequence
public void createSequence(java.lang.String sequenceName, long startValue) throws DataAccessException- Throws:
DataAccessException
-
dropSequence
public void dropSequence(java.lang.String sequenceName) throws DataAccessException- Throws:
DataAccessException
-
setLastUsedSeqValue
public void setLastUsedSeqValue(java.lang.String sequenceName, long sequenceValue)
-
nextSeqValue
public long nextSeqValue(java.sql.Connection conn, java.lang.String sequenceName) throws DataAccessException- Throws:
DataAccessException
-
getSqlToDropPrimaryKey
protected java.lang.String getSqlToDropPrimaryKey(java.lang.String primaryKeyName, java.lang.String table)
-
dropPrimaryKey
public void dropPrimaryKey(java.sql.Connection conn, java.lang.String primaryKeyName, java.lang.String table) throws DataAccessException- Throws:
DataAccessException
-
getSqlToAddPrimaryKey
protected java.lang.String getSqlToAddPrimaryKey(java.lang.String primaryKeyName, java.lang.String table, java.lang.String... columns)
-
addPrimaryKey
public void addPrimaryKey(java.sql.Connection conn, java.lang.String primaryKeyName, java.lang.String table, java.lang.String... columns) throws DataAccessException- Throws:
DataAccessException
-
getSqlToDropForeignKeyConstraint
protected java.lang.String getSqlToDropForeignKeyConstraint(java.lang.String constraintName, java.lang.String baseTable)
-
dropForeignKeyConstraint
public void dropForeignKeyConstraint(java.sql.Connection conn, java.lang.String constraintName, java.lang.String baseTable) throws DataAccessException- Throws:
DataAccessException
-
getSqlToAddForeignKeyConstraint
protected java.lang.String getSqlToAddForeignKeyConstraint(java.lang.String constraintName, java.lang.String baseTable, java.lang.String baseColumn, java.lang.String referencedTable, java.lang.String referencedColumn, java.lang.String onDeleteAction, java.lang.String onUpdateAction)
-
addForeignKeyConstraint
public void addForeignKeyConstraint(java.sql.Connection conn, java.lang.String constraintName, java.lang.String baseTable, java.lang.String baseColumn, java.lang.String referencedTable, java.lang.String referencedColumn, java.lang.String onDeleteAction, java.lang.String onUpdateAction) throws DataAccessException- Throws:
DataAccessException
-
getSqlToDropIndex
protected java.lang.String getSqlToDropIndex(java.lang.String table, java.lang.String indexName)
-
dropIndex
public void dropIndex(java.sql.Connection conn, java.lang.String table, java.lang.String indexName) throws DataAccessException- Throws:
DataAccessException
-
getSqlToCreateIndex
protected java.lang.String getSqlToCreateIndex(java.lang.String indexName, java.lang.String table, java.lang.String... columns)
-
createIndex
public void createIndex(java.sql.Connection conn, java.lang.String indexName, java.lang.String table, java.lang.String... columns) throws DataAccessException- Throws:
DataAccessException
-
getSqlToDropUniqueConstraint
protected java.lang.String getSqlToDropUniqueConstraint(java.lang.String constraintName, java.lang.String table)
-
dropUniqueConstrain
public void dropUniqueConstrain(java.sql.Connection conn, java.lang.String constraintName, java.lang.String table) throws DataAccessException- Throws:
DataAccessException
-
getSqlToAddUniqueConstrain
protected java.lang.String getSqlToAddUniqueConstrain(java.lang.String constraintName, java.lang.String table, java.lang.String... columns)
-
addUniqueConstrain
public void addUniqueConstrain(java.sql.Connection conn, java.lang.String constraintName, java.lang.String table, java.lang.String... columns) throws DataAccessException- Throws:
DataAccessException
-
translate
public DataAccessException translate(java.lang.String sql, java.sql.SQLException ex)
-
-