package com.philmcrew.utility.db; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.HashMap; /** * Collects a number of more complicated database actions than what is supported by jdbc * and provides a way to handle them differently per database driver. * * @author Mitchell J. Friedman */ public interface DbSpecific { public DatabaseMetaData getMetaData(); public Connection getConnection(); public String connectMessage(); public int createTableQuery( ResultSet columnMetaData, StringBuffer createQuery, HashMap columnMap ) throws SQLException; public boolean drop( String catTableName, String schemaTableName, String tableName ) throws SQLException; public boolean delete( String catTableName, String schemaTableName, String tableName ) throws SQLException; public ResultSet query( Statement statement, String query ) throws SQLException; public String buildDeclaration( DbColumnInfo dbColumnInfo ); public String buildNullable( DbColumnInfo dbColumnInfo ); public String buildColumnName( String columnName ); public void setObject( PreparedStatement preparedStatement, int parameterIndex, Object object, int sourceColumnType, DbColumnInfo destColumnInfo ) throws SQLException; public String getStatisticsQuery( DbColumnInfo dbColumnInfo ); }