java/jdbc-loopback-driver/src/info/globalcode/jdbc/loopback/ResultSet.java
author František Kučera <franta-hg@frantovo.cz>
Tue, 26 Feb 2019 18:19:49 +0100
branchv_0
changeset 236 a3ec71fa8e17
parent 171 701ec4db43fb
permissions -rw-r--r--
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!“
franta-hg@171
     1
/**
franta-hg@171
     2
 * SQL-DK
franta-hg@171
     3
 * Copyright © 2014 František Kučera (frantovo.cz)
franta-hg@171
     4
 *
franta-hg@171
     5
 * This program is free software: you can redistribute it and/or modify
franta-hg@171
     6
 * it under the terms of the GNU General Public License as published by
franta-hg@171
     7
 * the Free Software Foundation, either version 3 of the License, or
franta-hg@171
     8
 * (at your option) any later version.
franta-hg@171
     9
 *
franta-hg@171
    10
 * This program is distributed in the hope that it will be useful,
franta-hg@171
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
franta-hg@171
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
franta-hg@171
    13
 * GNU General Public License for more details.
franta-hg@171
    14
 *
franta-hg@171
    15
 * You should have received a copy of the GNU General Public License
franta-hg@171
    16
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
franta-hg@171
    17
 */
franta-hg@171
    18
package info.globalcode.jdbc.loopback;
franta-hg@171
    19
franta-hg@171
    20
import java.sql.SQLException;
franta-hg@171
    21
import java.util.Iterator;
franta-hg@171
    22
import java.util.List;
franta-hg@171
    23
franta-hg@171
    24
/**
franta-hg@171
    25
 *
franta-hg@171
    26
 * @author Ing. František Kučera (frantovo.cz)
franta-hg@171
    27
 */
franta-hg@171
    28
public class ResultSet extends AbstractResultSet {
franta-hg@171
    29
franta-hg@171
    30
	private final ResultSetMetaData metadata;
franta-hg@171
    31
	private final Iterator<Object[]> data;
franta-hg@171
    32
	private Object[] currentRow;
franta-hg@171
    33
franta-hg@171
    34
	public ResultSet(ResultSetMetaData metadata, List<Object[]> table) {
franta-hg@171
    35
		data = table.listIterator();
franta-hg@171
    36
		this.metadata = metadata;
franta-hg@171
    37
	}
franta-hg@171
    38
franta-hg@171
    39
	@Override
franta-hg@171
    40
	public boolean next() throws SQLException {
franta-hg@171
    41
		if (data.hasNext()) {
franta-hg@171
    42
			currentRow = data.next();
franta-hg@171
    43
			return true;
franta-hg@171
    44
		} else {
franta-hg@171
    45
			return false;
franta-hg@171
    46
		}
franta-hg@171
    47
	}
franta-hg@171
    48
franta-hg@171
    49
	@Override
franta-hg@171
    50
	public Object getObject(int columnNumber) throws SQLException {
franta-hg@171
    51
		return currentRow[columnNumber - 1];
franta-hg@171
    52
	}
franta-hg@171
    53
franta-hg@171
    54
	@Override
franta-hg@171
    55
	public ResultSetMetaData getMetaData() throws SQLException {
franta-hg@171
    56
		return metadata;
franta-hg@171
    57
	}
franta-hg@171
    58
franta-hg@171
    59
	@Override
franta-hg@171
    60
	public void close() throws SQLException {
franta-hg@171
    61
	}
franta-hg@171
    62
franta-hg@171
    63
	@Override
franta-hg@171
    64
	public boolean isClosed() throws SQLException {
franta-hg@171
    65
		return false;
franta-hg@171
    66
	}
franta-hg@171
    67
}