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!“
3 * Copyright © 2014 František Kučera (frantovo.cz)
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 package info.globalcode.jdbc.loopback;
20 import java.sql.Array;
22 import java.sql.CallableStatement;
24 import java.sql.DatabaseMetaData;
25 import java.sql.NClob;
26 import java.sql.SQLClientInfoException;
27 import java.sql.SQLException;
28 import java.sql.SQLWarning;
29 import java.sql.SQLXML;
30 import java.sql.Savepoint;
31 import java.sql.Struct;
33 import java.util.Properties;
34 import java.util.concurrent.Executor;
38 * @author Ing. František Kučera (frantovo.cz)
40 public abstract class AbstractConnection implements java.sql.Connection {
43 public java.sql.Statement createStatement() throws SQLException {
44 throw new SQLException("Not supported yet.");
48 public java.sql.PreparedStatement prepareStatement(String sql) throws SQLException {
49 throw new SQLException("Not supported yet.");
53 public CallableStatement prepareCall(String sql) throws SQLException {
54 throw new SQLException("Not supported yet.");
58 public String nativeSQL(String sql) throws SQLException {
59 throw new SQLException("Not supported yet.");
63 public void setAutoCommit(boolean autoCommit) throws SQLException {
64 throw new SQLException("Not supported yet.");
68 public boolean getAutoCommit() throws SQLException {
69 throw new SQLException("Not supported yet.");
73 public void commit() throws SQLException {
74 throw new SQLException("Not supported yet.");
78 public void rollback() throws SQLException {
79 throw new SQLException("Not supported yet.");
83 public void close() throws SQLException {
84 throw new SQLException("Not supported yet.");
88 public boolean isClosed() throws SQLException {
89 throw new SQLException("Not supported yet.");
93 public DatabaseMetaData getMetaData() throws SQLException {
94 throw new SQLException("Not supported yet.");
98 public void setReadOnly(boolean readOnly) throws SQLException {
99 throw new SQLException("Not supported yet.");
103 public boolean isReadOnly() throws SQLException {
104 throw new SQLException("Not supported yet.");
108 public void setCatalog(String catalog) throws SQLException {
109 throw new SQLException("Not supported yet.");
113 public String getCatalog() throws SQLException {
114 throw new SQLException("Not supported yet.");
118 public void setTransactionIsolation(int level) throws SQLException {
119 throw new SQLException("Not supported yet.");
123 public int getTransactionIsolation() throws SQLException {
124 throw new SQLException("Not supported yet.");
128 public SQLWarning getWarnings() throws SQLException {
129 throw new SQLException("Not supported yet.");
133 public void clearWarnings() throws SQLException {
134 throw new SQLException("Not supported yet.");
138 public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
139 throw new SQLException("Not supported yet.");
143 public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
144 throw new SQLException("Not supported yet.");
148 public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
149 throw new SQLException("Not supported yet.");
153 public Map<String, Class<?>> getTypeMap() throws SQLException {
154 throw new SQLException("Not supported yet.");
158 public void setTypeMap(Map<String, Class<?>> map) throws SQLException {
159 throw new SQLException("Not supported yet.");
163 public void setHoldability(int holdability) throws SQLException {
164 throw new SQLException("Not supported yet.");
168 public int getHoldability() throws SQLException {
169 throw new SQLException("Not supported yet.");
173 public Savepoint setSavepoint() throws SQLException {
174 throw new SQLException("Not supported yet.");
178 public Savepoint setSavepoint(String name) throws SQLException {
179 throw new SQLException("Not supported yet.");
183 public void rollback(Savepoint savepoint) throws SQLException {
184 throw new SQLException("Not supported yet.");
188 public void releaseSavepoint(Savepoint savepoint) throws SQLException {
189 throw new SQLException("Not supported yet.");
193 public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
194 throw new SQLException("Not supported yet.");
198 public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
199 throw new SQLException("Not supported yet.");
203 public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
204 throw new SQLException("Not supported yet.");
208 public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException {
209 throw new SQLException("Not supported yet.");
213 public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException {
214 throw new SQLException("Not supported yet.");
218 public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException {
219 throw new SQLException("Not supported yet.");
223 public Clob createClob() throws SQLException {
224 throw new SQLException("Not supported yet.");
228 public Blob createBlob() throws SQLException {
229 throw new SQLException("Not supported yet.");
233 public NClob createNClob() throws SQLException {
234 throw new SQLException("Not supported yet.");
238 public SQLXML createSQLXML() throws SQLException {
239 throw new SQLException("Not supported yet.");
243 public boolean isValid(int timeout) throws SQLException {
244 throw new SQLException("Not supported yet.");
248 public void setClientInfo(String name, String value) throws SQLClientInfoException {
249 throw new SQLClientInfoException("Not supported yet.", null);
253 public void setClientInfo(Properties properties) throws SQLClientInfoException {
254 throw new SQLClientInfoException("Not supported yet.", null);
258 public String getClientInfo(String name) throws SQLException {
259 throw new SQLException("Not supported yet.");
263 public Properties getClientInfo() throws SQLException {
264 throw new SQLException("Not supported yet.");
268 public Array createArrayOf(String typeName, Object[] elements) throws SQLException {
269 throw new SQLException("Not supported yet.");
273 public Struct createStruct(String typeName, Object[] attributes) throws SQLException {
274 throw new SQLException("Not supported yet.");
278 public void setSchema(String schema) throws SQLException {
279 throw new SQLException("Not supported yet.");
283 public String getSchema() throws SQLException {
284 throw new SQLException("Not supported yet.");
288 public void abort(Executor executor) throws SQLException {
289 throw new SQLException("Not supported yet.");
293 public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException {
294 throw new SQLException("Not supported yet.");
298 public int getNetworkTimeout() throws SQLException {
299 throw new SQLException("Not supported yet.");
303 public <T> T unwrap(Class<T> iface) throws SQLException {
304 throw new SQLException("Not supported yet.");
308 public boolean isWrapperFor(Class<?> iface) throws SQLException {
309 throw new SQLException("Not supported yet.");