java/jdbc-loopback-driver/src/info/globalcode/jdbc/loopback/ResultSetMetaData.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.ArrayList;
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 ResultSetMetaData extends AbstractResultSetMetaData {
franta-hg@171
    29
franta-hg@171
    30
	private List<ColumnDescriptor> columns = new ArrayList<>();
franta-hg@171
    31
franta-hg@171
    32
	public void addColumn(ColumnDescriptor cd) {
franta-hg@171
    33
		columns.add(cd);
franta-hg@171
    34
	}
franta-hg@171
    35
franta-hg@171
    36
	@Override
franta-hg@171
    37
	public int getColumnCount() throws SQLException {
franta-hg@171
    38
		return columns.size();
franta-hg@171
    39
	}
franta-hg@171
    40
franta-hg@171
    41
	@Override
franta-hg@171
    42
	public String getColumnLabel(int column) throws SQLException {
franta-hg@171
    43
		return columns.get(column - 1).label;
franta-hg@171
    44
	}
franta-hg@171
    45
franta-hg@171
    46
	@Override
franta-hg@171
    47
	public String getColumnName(int column) throws SQLException {
franta-hg@171
    48
		return columns.get(column - 1).name;
franta-hg@171
    49
	}
franta-hg@171
    50
franta-hg@171
    51
	@Override
franta-hg@171
    52
	public int getColumnType(int column) throws SQLException {
franta-hg@171
    53
		return columns.get(column - 1).type;
franta-hg@171
    54
	}
franta-hg@171
    55
franta-hg@171
    56
	@Override
franta-hg@171
    57
	public String getColumnTypeName(int column) throws SQLException {
franta-hg@171
    58
		return columns.get(column - 1).typeName;
franta-hg@171
    59
	}
franta-hg@171
    60
franta-hg@171
    61
	public static class ColumnDescriptor {
franta-hg@171
    62
franta-hg@171
    63
		private final int type;
franta-hg@171
    64
		private final String typeName;
franta-hg@171
    65
		private final String label;
franta-hg@171
    66
		private final String name;
franta-hg@171
    67
franta-hg@171
    68
		public ColumnDescriptor(int type, String typeName, String label, String name) {
franta-hg@171
    69
			this.type = type;
franta-hg@171
    70
			this.typeName = typeName;
franta-hg@171
    71
			this.label = label;
franta-hg@171
    72
			this.name = name;
franta-hg@171
    73
		}
franta-hg@171
    74
	}
franta-hg@171
    75
}