java/jdbc-loopback-driver/src/info/globalcode/jdbc/loopback/AbstractConnection.java
Avoid reusing/rewriting the DB connection properties.
There was weird random errors while testing connection to multiple DB in parallel when one of them was meta connection to same DB connection.
Two kinds of exception: 1) missing password 2) „Passing DB password as CLI parameter is insecure!“
/**
* SQL-DK
* Copyright © 2014 František Kučera (frantovo.cz)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package info.globalcode.jdbc.loopback;
import java.sql.Array;
import java.sql.Blob;
import java.sql.CallableStatement;
import java.sql.Clob;
import java.sql.DatabaseMetaData;
import java.sql.NClob;
import java.sql.SQLClientInfoException;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.SQLXML;
import java.sql.Savepoint;
import java.sql.Struct;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.Executor;
/**
*
* @author Ing. František Kučera (frantovo.cz)
*/
public abstract class AbstractConnection implements java.sql.Connection {
@Override
public java.sql.Statement createStatement() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public java.sql.PreparedStatement prepareStatement(String sql) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public CallableStatement prepareCall(String sql) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public String nativeSQL(String sql) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void setAutoCommit(boolean autoCommit) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public boolean getAutoCommit() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void commit() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void rollback() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void close() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public boolean isClosed() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public DatabaseMetaData getMetaData() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void setReadOnly(boolean readOnly) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public boolean isReadOnly() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void setCatalog(String catalog) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public String getCatalog() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void setTransactionIsolation(int level) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public int getTransactionIsolation() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public SQLWarning getWarnings() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void clearWarnings() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public Map<String, Class<?>> getTypeMap() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void setTypeMap(Map<String, Class<?>> map) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void setHoldability(int holdability) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public int getHoldability() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public Savepoint setSavepoint() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public Savepoint setSavepoint(String name) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void rollback(Savepoint savepoint) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void releaseSavepoint(Savepoint savepoint) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public Clob createClob() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public Blob createBlob() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public NClob createNClob() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public SQLXML createSQLXML() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public boolean isValid(int timeout) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void setClientInfo(String name, String value) throws SQLClientInfoException {
throw new SQLClientInfoException("Not supported yet.", null);
}
@Override
public void setClientInfo(Properties properties) throws SQLClientInfoException {
throw new SQLClientInfoException("Not supported yet.", null);
}
@Override
public String getClientInfo(String name) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public Properties getClientInfo() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public Array createArrayOf(String typeName, Object[] elements) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public Struct createStruct(String typeName, Object[] attributes) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void setSchema(String schema) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public String getSchema() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void abort(Executor executor) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public int getNetworkTimeout() throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
throw new SQLException("Not supported yet.");
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
throw new SQLException("Not supported yet.");
}
}